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

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

我们现在需要将它们更新到.NetFramework4.6.1:

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

这些软件包不会自动重定向,但是有一个自动的修复程序。

在包管理器控制台中简单地运行:

Update-Package -Reinstall

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

通过在新框架成为目标之后重新安装包,可以更改对正确版本的所有引用。

您还可以使用以下命令对单个项目运行此命令:

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

我已经多次使用这种技术来修复 nuget 引用问题。

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

<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

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

Update-Package -Reinstall -IgnoreDependencies

3找到所有的解决方案,然后 msbuild 每一个。

通过使用-修复

更新-软件包-重新安装

enter image description here