项目X的目标是'.NETStandard,版本=v1.6'。它不能被目标为'.NETFramework,版本=v4.6.1'的项目所引用。

13

我真的想成为一个好公民……将我的所有课程复制到 .net standard 1.6 库中。但是我发现我的测试 DLL 无法使用它。我得到了以下错误:

项目 X 的目标是“.NETStandard,版本=v1.6”。它不能被针对“.NETFramework,版本=v4.6.1”的项目引用。

当然,当我查看 .Net Standard (https://learn.microsoft.com/en-us/dotnet/articles/standard/library) 时,它说使用1.6可以针对4.6.1进行目标设置。

我尝试了4.6.2,但没有更好的运气。我安装了.net standard 1.6.1 NuGet 包。无论如何,你们都很棒,我相信你们会告诉我我正在犯什么愚蠢的错误,阻止我做一些基本的事情,比如使用 .net standard 库运行单元测试。

谢谢


P.S. 我找到了一种解决方法(有点),通过使用 .net core 单元测试项目代替 .net framework 项目。虽然它并没有解决我的问题,所以我不能把它标记为答案,但至少我可以回去编程了...


1
"Tools 2.0" 目前存在很多漏洞,还没有经过充分的测试。你只能使用1.4版本。建议等待一下,这个版本还未完成。 - Hans Passant
我不能使用1.4版本,我需要System.Runtime.Loader。 - Philippe Lavoie
4
我曾经遇到和1.6版本相同的问题,将我的 .Net 标准项目更改为1.4版本后,我的4.6.1项目成功编译了。顺便说一句,我也尝试了1.5版本,但它的表现和1.6相同。 - Greg Trevellick
@GregTrevellick 先生,您应该得到一颗糖果 :) - user585968
@MickyD 干杯! - Greg Trevellick
2个回答

1
你需要升级到.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。

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接