Visual Studio 2019 - .NET Standard 项目兼容性警告
Visual Studio 2019 - .NET Standard Project compatibility warning
我继承了一个 .NET 应用程序。此应用程序有一个包含许多项目的 Visual Studio 2019 解决方案。当我打开解决方案时,我可以看到多个警告:
ProjectReference {path} was resolved using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This project may not be fully compatible with your project.
在Visual Studio2019年,我可以看到项目属性中列出的Target框架是“.NET Standard 2.0”。这意味着我的机器上安装了框架。当我在记事本中打开其中一个引发此警告的 .csproj 文件时,我看到 TargetFramework
元素设置为 netstandard2.0
。此时,一切看起来都是正确的。但是,我不明白为什么会收到上述错误或如何修复它。
如何消除上面显示的警告?
这意味着您的 .NET Standard 2.0 项目具有对以 .NET Framework 4.6.1 作为目标的其他项目的引用依赖.
v2.0 之前的所有 .NET Standard 项目都不能可靠地依赖于使用非 .NET Standard 项目的其他项目,例如 .NET Framework 和 .NET Core 项目。目标依赖项的层次结构不正确,因为 .NET Standard 项目比 .NET Framework 和 .NET Core 具有更高的抽象(更通用)。
非 .NET Standard 项目可以具有对 .NET Framework 和 .NET Core 项目的引用依赖。
基于上述事实(并查看下面的文档)您可以强制 .NET Standard 项目依赖 on.NET Framework/NET Core 项目,但不能保证它会兼容,因此不能保证它能正常工作,尤其是在运行时。
.NET Standard 2.1 仅与 .NET Core 3.0 及更高版本兼容。
另请参阅 .NET Standard 的官方文档:https://docs.microsoft.com/en-us/dotnet/standard/net-standard
查看.NET Standard 2.1 公告的官方博客post:https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-1/
我继承了一个 .NET 应用程序。此应用程序有一个包含许多项目的 Visual Studio 2019 解决方案。当我打开解决方案时,我可以看到多个警告:
ProjectReference {path} was resolved using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This project may not be fully compatible with your project.
在Visual Studio2019年,我可以看到项目属性中列出的Target框架是“.NET Standard 2.0”。这意味着我的机器上安装了框架。当我在记事本中打开其中一个引发此警告的 .csproj 文件时,我看到 TargetFramework
元素设置为 netstandard2.0
。此时,一切看起来都是正确的。但是,我不明白为什么会收到上述错误或如何修复它。
如何消除上面显示的警告?
这意味着您的 .NET Standard 2.0 项目具有对以 .NET Framework 4.6.1 作为目标的其他项目的引用依赖.
v2.0 之前的所有 .NET Standard 项目都不能可靠地依赖于使用非 .NET Standard 项目的其他项目,例如 .NET Framework 和 .NET Core 项目。目标依赖项的层次结构不正确,因为 .NET Standard 项目比 .NET Framework 和 .NET Core 具有更高的抽象(更通用)。 非 .NET Standard 项目可以具有对 .NET Framework 和 .NET Core 项目的引用依赖。
基于上述事实(并查看下面的文档)您可以强制 .NET Standard 项目依赖 on.NET Framework/NET Core 项目,但不能保证它会兼容,因此不能保证它能正常工作,尤其是在运行时。
.NET Standard 2.1 仅与 .NET Core 3.0 及更高版本兼容。
另请参阅 .NET Standard 的官方文档:https://docs.microsoft.com/en-us/dotnet/standard/net-standard
查看.NET Standard 2.1 公告的官方博客post:https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-1/