启用Nuget Package Restore有什么好处?

时间:2014-07-20 08:26:14

标签: version-control nuget

我的Visual Studio解决方案中enabling the Nuget Package Restore feature有什么好处?

Nuget Docs网站中的“Using NuGet without committing packages to source control”页面提出了一个原因:

  

当使用像Mercurial或Git这样的DVCS时,提交二进制文件会增长   随着时间的推移,存储库大小就像疯了一样,使得克隆越来越多   痛苦

您是否发现此功能足以启用该功能?还有其他原因吗?

1 个答案:

答案 0 :(得分:3)

在源代码管理中没有NuGet包二进制文件有更多好处,我在another page进行了解释,我在这里重现了这些内容:

  1. 分布式版本控制系统(DCVS)包括存储库中每个文件的每个版本,经常更新的二进制文件可能导致大量存储库膨胀,并且需要更多时间来克隆存储库。
  2. 使用存储库中包含的软件包,团队成员可以直接向磁盘上的软件包内容添加引用,而不是通过NuGet引用软件包。
  3. 变得更难清洁"您对任何未使用的软件包文件夹的解决方案,因为您需要确保不删除任何仍在使用的软件包文件夹。
  4. 这些好处仍然与版本控制中没有NuGet包有关。因此,您突出显示的原因仍然有效。

    另请注意"启用包恢复功能"在以后的NuGet版本中,NuGet团队不推荐使用基于MSBuild的软件包恢复,因为它存在包含自定义MSBuild目标的NuGet软件包的问题。相反,NuGet团队建议不要使用它,而是使用基于Visual Studio的包恢复,它将在Visual Studio中构建项目之前恢复NuGet包。

    当NuGet首次发布时,NuGet团队当时希望您将二进制文件放在源代码控制中,这样您就不必在构建项目时依赖NuGet。因此,开发人员可以克隆存储库并立即构建项目,而无需使用NuGet。但是你现在可以选择。

    当您使用大型版本控制存储库(例如MonoDevelop)时,包含二进制文件可能会使存储库非常大。对于较小的存储库,包括NuGet包不是一个真正的问题。