我仍然必须将第三方库二进制文件保留在源代码管理中吗?

时间:2010-12-16 12:40:48

标签: svn version-control nuget

现在我正在使用NuGet添加/更新我需要的引用,是否可以只将packages.config添加到源代码控制并在构建时添加.dll?

通常,如this related question中所述,我将第三方依赖项存储在解决方案根目录下的文件夹中,并将其检入源代码控制。

我们目前没有使用任何自定义构建工具或脚本:只是使用.sln文件的VisualStudio默认构建。

1 个答案:

答案 0 :(得分:15)

是的,你可以! http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

  

当前的NuGet工作流一直是将Packages文件夹提交到源代码管理中。理由是它与开发人员在没有NuGet时通常会做的事情相匹配:他们创建一个'Lib'或'ExternalDependencies'文件夹,将二进制文件转储到那里并将它们提交给源控件以允许其他人构建。

     

虽然这对一些用户来说运行良好,但我们也听到很多人认为将包提交到源代码控制中并不是他们想要做的。当使用像Mercurial或Git这样的DVCS时,提交二进制文件会随着时间的推移逐渐增加存储库大小,使克隆变得越来越痛苦。事实上,这是NuGet我们的问题跟踪器的最高要求之一。

     

好消息是NuGet现在提供了一个解决这个问题的工作流程。它还没有100%自动化,但是只需要一点点痛苦就可以设置你的项目......