Nuget:在packages.config中requireReinstallation标记的目的是什么

Nik*_*wal 37 c# nuget

我将我的C#项目(已经有一些nuget包)从4.0升级到4.5.2.我看到一些包现在包含一个额外的标签requireReinstallation.

a)这个目的是什么?

b)为什么有些包装有,有些包装没有.

之前

<package id="NLog" version="3.1.0.0" targetFramework="net40" />
Run Code Online (Sandbox Code Playgroud)

<package id="NLog" version="3.1.0.0" targetFramework="net40" requireReinstallation="true" />
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 40

发行说明

如果我们检测到您的任何软件包受到重定向或升级的影响,我们将立即生成构建错误以通知您.除了立即构建错误之外,我们还在packages.config文件中为受重新定位影响的所有包保留了requireReinstallation ="true"标志,并且Visual Studio中的每个后续构建都将针对这些包引发构建警告.

从本质上讲,NuGeT会自动标记与您的项目目标或版本冲突的包

  • TLDR :`更新包 &lt;package_name&gt; -ProjectName &lt;my_project&gt; -reinstall` (7认同)
  • 我发现重新安装这些软件包而不升级它们的最干净的方法是使用软件包管理器控制台,可以在这里找到“ Update-Package”说明https://docs.microsoft.com/zh-cn/nuget/consume-packages/重新安装和更新软件包#using-update-package (2认同)
  • 是的,特别是Update-Package的“ -Reinstall”选项可避免升级版本。此外,请确保仅使用“ -ProjectName”选项将解决方案中的特定项目作为目标,并且仅更新当前解决方案“拥有”的项目的程序包,因为添加到项目引用中的DLL提示路径将相对于当前打开的解决方案的软件包目录。换句话说,如果一个项目包含在多个解决方案中,请确保仅在打开该项目所在的解决方案文件夹中的解决方案时才更新/安装该项目的软件包。 (2认同)