这个项目使用的Microsoft.NET.Sdk版本不足以支持引用针对.NET Standard 1.5或更高版本的库。

15
我遇到了以下构建错误:
引用针对 .NET Standard 1.5 或更高版本的库,而此项目使用的 Microsoft.NET.Sdk 版本不足。请安装 .NET Core SDK 的版本2.0或更高版本。

enter image description here

每当我重建解决方案时,就会显示此错误。有人知道如何解决吗?我确定我已正确安装了Visual Studio 2017(15.3.2)和.NET Core 2.0。

enter image description here


尝试安装 .Net Core 2.0 SDK 而不是二进制文件。 - Balagurunathan Marimuthu
1
https://www.microsoft.com/net/download/core - 提供了下载SDK的选项。 - Balagurunathan Marimuthu
编辑问题并上传第三张图片。 - Balagurunathan Marimuthu
我也遇到过这个错误。在我的情况下,是由于从另一个项目中重复/复用发布配置文件,因此在尝试发布时出现了此错误。从头开始创建一个新的配置文件,问题就解决了。确实,该项目正在使用NETStandard 2.0。 - Jose Cordero
5个回答

17
我曾遇到相同的问题。现在,将<DependsOnNETStandard>false</DependsOnNETStandard>添加到你的csproj文件中可以解决。查看https://github.com/dotnet/sdk/issues/1527以获取更多信息。

很高兴听到这个消息。请密切关注 ASP.NET Core 的问题/公告存储库,微软可能会在未来的版本中修复此问题。 - koelkastfilosoof
但现在的解决方案不是基于标准2.0,希望有一天这个标准能成为真正的“标准”。 - lukangkang
是的,我也正在将我的系统升级到.NET Core 2.0/.NET Standard 2.0,有更多我们实际需要的API和改进。如果你愿意,你可以将我的答案标记为你问题的解决方案。这也有助于后来的人。 - koelkastfilosoof
这就是我昨天一直在寻找的东西!谢谢你! - tedebus

2

什么不起作用(对我来说)?

  • 我卸载了VS2017,从控制面板中卸载了所有与Dotnet相关的东西,重新安装了一切。然而,我还是得到了同样的错误。我卸载了dotnet core版本并重新安装它们,但还是不起作用。
  • "将false添加到您的csproj文件"有点奏效,但这个问题只出现在我的机器上,如果不必要,我不想使用它。

什么起作用(对我来说)?

我打开了目标文件

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\Microsoft.NET.Build.Extensions.NETFramework.targets

删除了这一行

<NETBuildExtensionsError Condition="'$(DependsOnNETStandard)' == 'true' AND '$(NETStandardInbox)' != 'true' AND '$(_UsingOldSDK)' == 'true'" ResourceName="UnsupportedSDKVersionForNetStandard20"/>

同样的操作也适用于Mono:/Library/Frameworks/Mono.framework/Versions/6.13.0/lib/mono/xbuild/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets,它可以正常工作。谢谢! - Victor Trusov
@VictorTrusov 感谢点赞。我很高兴它有所帮助。 - boyukbas

1
我几天前也遇到了同样的问题。添加<DependsOnNETStandard>不能解决我的问题。我只是在控制面板中卸载了“Microsoft .NET Core…”,然后再次安装了.NET Core。这个问题消失了。也许这是解决这个问题最快的方法。

1
你需要安装.Net Core SDK 2.0.Net 2.0二进制文件(运行时)。请根据项目的目标平台安装相应的.Net Core 2.0 SDK,可以是x86x64.Net Core SDK 2.0下载链接在这里

Sample


是的,我已经完成了。在发布十篇帖子之前,我只能上传两张图片。实际上,我的第三张图片是:dotnet --info,结果显示我已安装了 .NET Core 2.0。 - lukangkang
好的。但是,如果您正在使用SDK,则还需要安装SDK。仅安装二进制文件(运行时)是不够的。 - Balagurunathan Marimuthu
你的意思是需要安装 .NET Core SDK 2.0 和 .NET Core Runtime 2.0 两个吗?我已经确定安装了 .NET Core SDK,所以我还需要安装 Runtime 吗? - lukangkang
你是否在上面的图像中看到了依赖项中的SDK节点?如果是,请检查您的应用程序的目标平台。并确保您在系统中安装了相应的SDK(x86或x64)。如果问题仍然存在,请根据您的应用程序的目标平台安装二进制文件(x86或x64)。 - Balagurunathan Marimuthu
我发现了一个问题,我的目标是框架而不是核心,标准2.0现在不支持框架吗? - lukangkang

0
在我的这一边,我需要在.csprj中添加以下内容:
<PropertyGroup>
  <DependsOnNETStandard>netstandard2.0</DependsOnNETStandard>
</PropertyGroup>

<ItemGroup>
  <Reference Include="netstandard" />
</ItemGroup>

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