Project X 目标为“.NETStandard,Version=v1.6”。它不能被以“.NETFramework,Version=v4.6.1”为目标的项目引用

Project X targets '.NETStandard,Version=v1.6'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6.1'

我真的很想成为一个好公民...将我所有的 类 复制到 .net 标准 1.6 库。只是为了发现我的测试 DLL 不能使用它。我收到以下错误

Project X targets '.NETStandard,Version=v1.6'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6.1'.

当然,当我检查 .Net Standard (https://docs.microsoft.com/en-us/dotnet/articles/standard/library) 时它说 1.6 可以针对 4.6.1.

我尝试了 4.6.2,但运气不佳。我安装了 .net standard 1.6.1 NuGet 包。无论如何,你们真棒,我相信你们会告诉我我犯了哪个愚蠢的错误,导致我无法使用 .net 标准库进行 运行 单元测试这样的基本操作。

谢谢


P.S. 我确实通过使用 .net 核心单元测试项目而不是 .net 框架项目找到了解决方法(某种程度上)。它没有解决我的问题,所以我不能将其标记为答案,但至少我可以回去编码...

您需要升级到.Net Core SDK 2.x+

安装完成后重新启动您的机器,您应该能够在 .Net Framework 4.6.1+ 中引用 NetStandard 1.6

使用 .Net Core SDK 1.x 您只能在 .Net Framework 4.6.2 中引用 Net Standard 1.5

如果可以的话,最好将您的 Net Standard 项目升级到 2.0 版。

如果针对不同版本的 .net framework 出现类似标题的错误,这通常意味着您需要(如果尚未安装,则安装)更改目标您的项目 newer/newest 版本的 .net framework 符合针对较新 .net 标准 的项目。