如何解决Visual Studio 2019 - .NET Standard 项目兼容性警告
我继承了一个 .NET 应用程序。此应用程序具有包含许多项目的 Visual Studio 2019 解决方案。当我打开解决方案时,我可以看到多个警告:
ProjectReference {path} 已使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETStandard,Version=v2.0”解决。此项目可能与您的项目不完全兼容。
在 Visual Studio 2019 中,我可以看到项目属性中列出的 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 项目依赖于 .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 公告的官方博客文章:https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-1/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。