【发布时间】:2012-03-20 21:03:44
【问题描述】:
我有两个存储库,我需要从另一个存储库中的一个存储库编译的库。我不想手动检查 repo1 以获取更新的库,然后复制/提交到 repo2,因为那很愚蠢。我有 repo1 在必要库的每个版本上构建 NuGet 包,并将它们发布到内部 NuGet 服务器。然后 repo2 中的项目可以引用这些 NuGet 包,并且一切都(几乎)正常工作。
最后一个障碍是自动更新 repo2 项目中的 NuGet 包。由于我不知道 repo1 中的库何时会更新(而且我不应该这样做),我希望 repo2 中的项目上的某种构建事件会自动更新 NuGet 包。我目前只有一个预构建事件,但由于 packages.config 文件包含已安装包的版本号,我不断在 repo2 中获取修改后的文件(packages.config 文件得到更新)。
所以我的问题是:在不破坏我的 repo2 VCS 的情况下自动升级 NuGet 包的好方法是什么? ScottGu 说Here(在 cmets 中)可以将包升级挂钩到 CI 构建,但他没有具体说明如何以及我当前的解决方案是混乱的。有没有我缺少的内置方式?还是有更好的解决方法?
【问题讨论】:
-
小心。这些库可能会改变和破坏您的软件。 blog.heroku.com/archives/2011/6/28/…
-
这就是我们的自动化测试套件的用途:)
-
@themilkyninja 你有没有找到合适的解决方案?我面临着完全相同的问题。
-
不。我们最终一起跳过了 NuGet 并手动进行。但是,我们现在最多有 4 个不同的依赖项,因此我们将再次设置所有 NuGet 内容,并在情况发生变化时手动构建包。
-
那么如果...在其中一个构建步骤中有一个脚本可以解析来自包提要(如this)的版本,然后在
package.config中修改相应的包版本?
标签: continuous-integration nuget nuget-package