2017-03-31 66 views
0

packages.config中有一个'requireReinstallation'标记,其目的很可能是clear。但是,我想知道NuGet究竟是如何决定是否需要重新安装软件包。我有一个Serilog和RayGun软件包的项目,升级.NET版本后,只有Seri​​log获得了标签集。这背后的算法是什么?NuGet如何确定是否需要重新安装

回答

1

如果将NuGet包安装到项目中(如果它具有新的目标框架),则该算法与用于确定哪个程序集是项目的最佳匹配的算法相同。如果程序集不同,NuGet认为需要重新安装。

    • 的lib/net45
  • 酒吧

    • 的lib/net45:

      所以,如果你已经安装了Foo和酒吧的NuGet包

    • 的lib/net46

和你的项目所针对的.NET 4.5,你把它改成.NET 4.6,那么的NuGet将标志着酒吧为需要重新安装。 Bar有一个针对.NET 4.6的程序集,所以它被认为是更好的匹配。 Foo不需要重新安装。