我想知道是否可以使用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/
就可以了。)
答案 0 :(得分: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
答案 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讨论这个问题,他要求就如何解决这个问题提出反馈意见。