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

我想知道是否有可能使用nuget只在版本控制中存储对所需软件包的引用(只有package.config并忽略软件包文件夹)。

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

更新:

似乎我不是唯一一个请求这个function的人: 看到这个工作项目 (感谢PHeiberg的提示)

更新2:

NuGet现在具有这个function。 有关详细信息,请参阅使用NuGet而不提交包到源代码pipe理 。 剩下的就是将packages目录添加到.gitignore或者你的VCS的一些等价物中(如果你在版本库的根目录下使用git, /packages/将会诀窍)。

我刚刚发现了关于NuGetPowerTools: https : //github.com/davidfowl/NuGetPowerTools

另见: http : //blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

更新:NuGet 1.6现在支持包还原: http : //docs.nuget.org/docs/release-notes/nuget-1.6

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

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

Scott Guthrie在这个话题上说 :

“您可以将命令行选项与CI解决scheme集成在一起,并执行update-package命令作为您的构build/ CI进程的一部分来下载更新。坦率地说,我不确定这对我们正在讨论的场景是否有意义但是,通常你需要一些开发人员在将核心运行时依赖关系更新为新版本之前做出决定,NuPack的默认模型会让开发人员使用NuPack来安装一个库,而NuPack会自动检查包和源代码控制的依赖关系。这样,另一个开发者(或CI服务器)就不需要再次使用NuPack了 – 他们只需要同步他们的源代码和构build,但是正如我前面提到的 – 如果你想明确地做一个更新作为CI过程的一部分,你可以“。

编辑:

您的评论后,我看到你想要实现的。 我在NuPack的讨论清单中发现了这个长长的问题。 一个解决scheme显然不会是v1的一部分。 在您select的configuration项中configuration一个自定义的构build任务,并在您的仓库中configuration一个configuration,这是我看到的唯一解决scheme。 请报告你的发现。 你让我感兴趣

在Phil Haack的博客上有一个关于这个问题的讨论,他在这里要求如何解决这个问题的反馈。