NuGet和分布式版本控制(DVCS)

时间:2010-10-16 18:12:01

标签: git version-control dvcs nuget

我想知道是否可以使用nuget仅存储对版本控制中所需包的引用(仅限package.config并忽略packages文件夹)。

有没有办法告诉nuget(重新)下载各种package.config文件中的所有引用包?或类似的东西可以放入构建脚本。

更新

似乎我不是唯一一个请求此功能的人:See this work item(感谢PHeiberg提示)

更新2:

NuGet现在内置了此功能。有关详细信息,请参阅Using NuGet without committing packages to source control。剩下的就是将packages目录添加到.gitignore或一些等效的VCS(如果你在存储库的根目录中使用git,/packages/就可以了。)

3 个答案:

答案 0 :(得分:19)

答案 1 :(得分:8)

我不知道你的第一个问题。

至于让CI服务器自动更新软件包,理论上它是可行的。您可以链接“List-Package -Installed”和“Update-Package”命令,并将每个包更新到最新版本。有关详细信息,请参阅command reference

Scott Guthrie says this关于这个话题:

  

“您可以集成命令行   使用CI解决方案的选项并执行   update-package命令显式为   拉动构建/ CI过程的一部分   更新。坦率地说,我不确定   这对我们的场景有意义   然而,正在谈论的是   通常你想要一些开发人员来决定   在更新核心运行时之前   依赖于新版本。 NuPack的   默认模型会有一个开发人员   使用NuPack安装库 - 和   NuPack会自动登记入住   源和包的依赖关系   控制。那样的另一个开发(或者   CI服务器)不需要使用NuPack   再次 - 他们可以同步他们的   来源和构建。但正如我所说   更早 - 如果你想明确   作为CI的一部分进行更新   过程你可以。“

修改

在您发表评论后,我会看到您正在努力实现的目标。我在NuPack讨论列表中找到了关于该问题的this long thread。解决方案显然不是v1的一部分。您选择的CI中的自定义构建任务和回购中的配置是我看到的唯一解决方案。请报告您的调查结果。你让我感兴趣。

答案 2 :(得分:5)

目前正在Phil Haack's blog讨论这个问题,他要求就如何解决这个问题提出反馈意见。