将目标框架从4.7升级到4.7.1 Nu-Get无法还原软件包

时间:2019-03-27 15:36:03

标签: .net nuget-package-restore

我刚刚将Visual Studio 2017解决方案中所有11个项目的目标框架从.NET 4.7更改为.NET 4.7.1。但是现在,每次我尝试构建时,我都会从NuGet中得到以下错误

1>------ Build started: Project: GS.Core, Configuration: Debug x64 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): error : Your project does not reference ".NETFramework,Version=v4.7.1" framework. Add a reference to ".NETFramework,Version=v4.7.1" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
StopOnFirstBuildError: Build cancelled because project "GS.Core" failed to build.
Build has been canceled.

如果我查看.csproj文件,则会发现目标框架已更改。

<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>

我没有看到“ TargetFrameworks”部分,只是“ TargetFrameworkVersion”

开怀大笑,我尝试实际上添加一个具有该名称的键,该键与指定的错误消息完全相同。

<TargetFrameworks>.NETFramework,Version=v4.7.1</TargetFrameworks>

那是个坏主意。尝试加载时,Visual Studio爆炸了。

如果重要的话,我的默认软件包管理格式为“ PackageReference”。

我尝试了this question中列出的修复程序,但是没有效果。

是否可以解决此问题?如有必要,我很乐意手动编辑项目文件。我非常想转到4.7.1

1 个答案:

答案 0 :(得分:2)

回答我自己的问题,因为经过大量的搜索,我在MS开发人员社区论坛上偶然发现了答案

https://developercommunity.visualstudio.com/content/problem/317628/your-project-does-not-reference-netframeworkversio.html

罪魁祸首似乎是.OBJ文件夹中的project.assets.json文件。解决方法是删除所有bin和.OBJ文件夹并重建。 MS指出,由于存在解决方法,因此这是一个低优先级的问题。

请注意,清洁溶液无济于事。我必须手动删除文件夹。我猜这个json文件不算是构建的一部分,即使它位于其中。

(我应该说我不能确切地说这是.json文件。我在看到建议后就删除了这些文件夹,但从未寻找过。但是我猜那是ti)。