如何避免重复NuGet包

时间:2012-07-02 14:14:48

标签: .net nuget

是否有各种NuGet软件包的本地副本的中心位置,并且在中央位置的单个副本上具有不同的Visual Studio解决方案POINT,而不是将NuGet软件包复制到每个VS solutions \ packages目录中?

我知道磁盘空间很便宜,但拥有多个NUnit,EF等副本似乎很浪费

3 个答案:

答案 0 :(得分:3)

如果对软件包进行更新会发生什么?您是否要使用新版本的软件包测试每个项目?

当包裹发生变化时会发生什么?

每个解决方案都有一个包的单独副本,允许您一次测试和更新一个包。这是一件好事。

此外,大多数软件包都非常小,您需要数百个(如果不是数千个)副本才能注意到“浪费”。

一些例子
EF 4.3.1是2.84 MB NUnit 2.3.012054是795 KB Unity 2.1.505是1.45 MB。

不要担心这件事。这不值得你花时间。

答案 1 :(得分:2)

答案 2 :(得分:0)

,自NuGet 2.1以来,现在完全有可能。

  1. 您需要将NuGet.config文件移动到中心位置。
  2. 更改repositoryPath配置值以指定所有包的中心位置(NuGet docs)。
  3. 在目标文件中进行一些黑客操作,以从恢复命令中删除solutionDir选项。
  4. 更新所有项目引用以指向新位置。
  5. 为了避免重复,我已经详细介绍了在这个答案中应该做些什么:https://stackoverflow.com/a/19466173/564726