如何升级到.NETStandard 2.0 NuGet包

9
我目前拥有一个使用Visual Studio 2015创建的.NET Framework 4.7类库,并且使用了Microsoft.Extensions.Configuration NuGet 包版本为 1.1.2。我尝试将其更新到版本 2.0,但是我遇到了这个错误:

Microsoft.Extensions.Configuration 2.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.7', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

我发现新版本仅支持.NET Standard 2.0。我需要在Visual Studio 2017中将我的整个项目转换为.NET Core.NET Standard吗?


你是否按照建议在 https://blog.nuget.org/20170815/Whats-nu-in-NuGet-with-VS2017-15-3.html 中更新了 VS2015 中的 NuGet 组件? - Lex Li
2个回答

6

.NET Framework版本4.6.1及更高版本支持.NET Standard 2.0+,但仅在使用新工具时才支持。确保您更新到VS 2017版本15.3.0或更高版本,并安装了.NET Core SDK 2.0.0,且未在解决方案目录层次结构中使用global.json来锁定较低的SDK版本。

您可能还需要在VS 2017中安装.NET Core工作负载。


谢谢,升级到VS 2017解决了我的问题。为什么使用VS 2017与2015相比会有所不同? - dhrm
由于某种原因,我无法使用msbuild(版本15.3.3)进行构建,出现了与之前相同的异常情况,只有在VS 2017(15.3.3)中才会出现。你知道为什么吗? - dhrm
你是否已安装了.NET Core(“跨平台”)工作负载?目前需要安装它,因为它包含此操作所需的必要msbuild逻辑。 - Martin Ullrich
谢谢,安装了msbuild中的*.NET Core build tools*工作负载后,它正常运作了。 - dhrm

3

如果要使用Microsoft.Extensions.Configuration 2.0.0包,您需要将项目转换为.Net Standard 2.0。

请查看以下链接,了解支持.Net Standard 2.0的.Net框架版本。目前,.Net Standard 2.0仅支持 .Net framework 4.6.1.

.Net standard 2.0支持的API


现在是这样的情况还是只有这个软件包? - dhrm
很可能是这样。 :( 因为 .net standard 将成为所有其他版本构建的基础公共库,请查看此链接 https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ - Sriram
3
自 .NET 4.6.1 起支持 .NET Standard 2.0,这意味着 4.7 也可以使用该软件包。错误消息表明,在尝试升级软件包时使用了旧版的 VS/NuGet/SDK(请参见我的答案)。 - Martin Ullrich

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