52

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

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

更新:

似乎我不是唯一一个请求此功能的人:查看此工作项(感谢 PHeiberg 的提示)

更新 2:

NuGet 现在已内置此功能。有关详细信息,请参阅使用 NuGet 而不将包提交到源代码管理。剩下的就是将包目录添加到 .gitignore 或您的 VCS 的某些等价物(/packages/如果您将它放在存储库的根目录中并使用 git,则可以解决问题)。

4

3 回答 3

19

我刚刚发现了 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

于 2011-08-23T08:00:15.680 回答
8

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

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

Scott Guthrie在这个话题上这样说:

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

编辑:

在您发表评论后,我看到了您想要实现的目标。我在有关该问题的 NuPack 讨论列表中找到了这个长线程。解决方案显然不会成为 v1 的一部分。您选择的 CI 中的自定义构建任务和您的 repo 中的配置是我看到的唯一解决方案。请报告您的发现。你让我感兴趣。

于 2010-10-18T19:13:31.013 回答
5

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

于 2011-04-28T03:48:13.847 回答