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

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

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

更新:

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

更新2:

NuGet现在内置了此功能。 有关详细信息,请参阅在不将程序包提交到源代码控制的情况下使用NuGet。 剩下的就是将packages目录添加到.gitignore或与您的VCS等效的目录中(如果您在存储库的根目录中使用git则可以解决问题(2701874451343475757)。

Fionn asked 2020-01-14T06:06:34Z
3个解决方案
19 votes

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

Robert Ros answered 2020-01-14T06:07:22Z
8 votes

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

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

斯科特·格思里(Scott Guthrie)在这个话题上说:

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

编辑:

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

PHeiberg answered 2020-01-14T06:08:06Z
5 votes

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

David White answered 2020-01-14T06:08:26Z
translate from https://stackoverflow.com:/questions/3950166/nuget-and-distributed-version-control-dvcs