Nuget-是否需要重新安装标有requireReinstallation问题的软件包?

时间:2018-09-04 15:22:09

标签: .net visual-studio nuget

在将VS解决方案升级到新的.Net版本之后,NuGet有时会在packages.config中的第三方软件包中添加requireReinstallation标志,这会导致生成警告。

此问题已在这篇文章中描述: https://dhalgara.com/2018/04/19/nuget-require-reinstallation/

我想知道如果在构建解决方案时未收到任何警告,跳过重新安装packages.config中标有requireReinstallation标志的软件包是否安全?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

我想知道如果在构建解决方案时未收到任何警告,跳过重新安装packages.config中标有requireReinstallation标志的软件包是否安全?

如果在构建解决方案时未收到任何警告,则不确定告诉您是否安全跳过在packages.config中重新标记带有requireReinstallation标志的软件包,但是个人建议不要跳过重新安装。

根据release notes

  

如果我们检测到您的任何包裹都受到   重新定位或升级,我们会立即产生构建错误,   你懂。除了立即生成错误外,我们还坚持   所有文件包中的requireReinstallation =“ true”标志   受到重新定向的软件包,以及随后的每个软件包   在Visual Studio中进行构建会针对这些软件包提出构建警告。

这意味着该算法与用于确定哪个程序集与该项目最匹配的算法相同(如果该程序具有新的目标框架,则要将NuGet软件包安装到项目中)。如果程序集不同,则NuGet认为需要重新安装。例如,带有以下内容的nuget包:

  • lib / net45

    • Classlibeary1.dll
  • lib / net46

    • Classlibeary1.dll

将目标框架从.net 4.5更改为4.6时,NuGet会将.net 46下的dll标记为需要重新安装。软件包具有针对.NET 4.6的程序集,因此被认为是更好的匹配。

如果从.net 46和.net 45引用的方法相同,则可以安全地跳过重新安装标有requireReinstallation标志的软件包,但是,如果.net 46和.net 45中的方法不同,则需要重新安装此nuget软件包。

因此,个人建议不要跳过重新安装。

希望这会有所帮助。