从.Net Framework 4.5升级到4.6.1后,Nuget重新定位

时间:2016-03-15 23:10:56

标签: c# asp.net .net visual-studio-2013 nuget

我有一个包含约30个项目的.net解决方案,所有这些项目都以.Net Framework 4.5为目标。每个引用至少3-4个NuGet包。

我们现在需要将它们更新为.Net Framework 4.6.1。所以我需要知道的是:

  1. 我是否还需要重新定位NuGet软件包,或者我可以跳过它,因为这将是一个“就地”的软件包。升级吗?
  2. 如果是,我可以通过替换targetFramework =" net45"来更新每个项目的packages.config文件。使用targetFramework =" net461"每个NuGet包?我已经看到一些线程建议卸载,然后通过' update-package'重新安装软件包。命令。我今天试过了,但最后我遇到了一些错误。

3 个答案:

答案 0 :(得分:169)

这些包不会自动重新定位,但有一个自动修复程序。

在软件包管理器控制台中,只需运行:

Update-Package -Reinstall

这将强制程序包管理器重新安装每个项目中的每个程序包(不更改引用程序包的版本)。

通过在新框架定位后重新安装软件包,可以更改所有对正确版本的引用。

您也可以针对单个项目运行此操作:

Update-Package -Reinstall -ProjectName Project.Name.Here

我多次使用这种技术来解决nuget参考问题。

答案 1 :(得分:26)

1查找所有.csproj文件并替换

<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

2打开软件包管理器控制台并运行

Update-Package -Reinstall -IgnoreDependencies

3找到所有解决方案,然后建立每个解决方案。

答案 2 :(得分:2)

使用 -

修复

Update-Package -reinstall

enter image description here