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/