2010-10-16 99 views
52

我想知道是否可以使用nuget来只存储对版本控制中所需软件包的引用(只有package.config并忽略软件包文件夹)。NuGet和分布式版本控制(DVCS)

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

更新:

看来,我不是谁要求此功能只有一个:See this work item(感谢PHeiberg的提示)

更新2:

的NuGet现在内置此功能。详情请参阅Using NuGet without committing packages to source control。剩下的事情就是把packages目录添加到.gitignore或者你的VCS的一些等价物中(如果你在版本库的根目录下并且正在使用git,/packages/就会诀窍)。

+0

@罗伯特 - 罗斯回答了这个从大卫博博客条目。 :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche 2012-01-04 15:47:35

回答

8

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

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

斯科特的话题格思里says this

“你可以整合与CI解决方案的命令行 选项,并明确地做一个 更新包命令作为构建/ CI过程的 一部分拉 下来的更新。坦率地说,我不知道 是有道理的,因为我们 都在谈论,虽然场景,因为通常 你想一些开发,以更新核心运行时 依赖于新版本之前决定 。NuPack的 默认模式将有一个开发人员 使用NuPack来安装库 - 和 NuPack会自动检查 包和依赖项来源 控制。这样,另一个开发者(或者CI服务器)不需要再次使用NuPack --他们可以只同步他们的 源和构建。但正如我前面提到 前面 - 如果你想明确 做一个更新为您的CI 过程中你可以的一部分“

编辑:

您的评论后,我看到你在做什么我在NuPack的讨论清单中发现了this long thread这个问题,一个解决方案显然不是v1的一部分,在你选择的配置项中配置一个自定义的构建任务,在你的仓库中配置一个配置是我看到的唯一解决方案。请将您的发现报告回来,您对我有兴趣。

+0

嗯,我不想要最新版本,我想指定的一个 - 我只是不想在存储库中使用二进制文件(因为它大大扩展了每个新版本的DCVS存储库的存储库大小) – Fionn 2010-10-19 13:44:09

+0

好的,这种说法是有道理的。您可以在存储库中粘贴软件包名称和版本列表,然后让您的CI使用“Add-Package -Version”命令获取每个软件包。 – PHeiberg 2010-10-19 19:11:57

+0

发现最近的讨论。看我的编辑。 – PHeiberg 2010-10-19 19:30:31

5

Phil Haack's blog有关于这个问题的当前讨论,他在这里要求如何解决这个问题的反馈。