无法在 .NET Framework 2.0 中引用 .NET Standard 2.0

.NET Standard 2.0 cannot be referenced in .NET Framework 2.0

我收到一个错误:

'c:......\xxxx.csproj' 目标为“.NETStandard,Version=v2.0”。它不能被以“.NETFramework,Version=v2.0”为目标的项目引用。 WindowsFormsApp1

如何解决?

很遗憾,您无法在 .NET 2.0 项目中引用 .NET Standard 库。原因是 .NET 2.0 缺少许多键 API,因此无法实现 .NET Standard 2.0 契约。如果您无法修改 .NET Standard 2.0 库的源代码,唯一的选择是将您的项目升级到 .NET Framework 4.6.1 或更高版本.

最有用的参考是官方文档中列出的 .NET Standard Compatibility matrix,它显示了与不同 .NET 实现的版本兼容性:

从这里可以看出第一个可以引用.NET Standard 库的 .NET Framework 版本是 4.5,它仍然不能引用 Standard 2.0,因为它仍然缺少一些 APIs .

有关详细信息,请查看 .NET Standard documentation

假设您遇到了与上述错误类似的错误,例如:

Project '*.csproj' targets 'netstandard2.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.5.2'.

要解决该问题,您需要根据@Martin 的table 提到的更改项目版本。 在上面的示例中,我必须进入依赖项目的项目设置,并将 .net 版本更改为 4.6.1 或更高版本以对应于引用项目的目标,例如错误消息中的 netstandard 2.0。

或者,也可以用同样的方式降级另一个项目