我有两个存储库,我需要从另一个存储库中编译库.我不想手动检查repo1的更新库,并复制/提交到repo2,因为这是愚蠢的.我已经在每个必要库的构建上创建了repo1构建NuGet包,并将它们发布到内部NuGet服务器.然后repo2中的项目可以引用这些NuGet包,一切都(几乎)正常工作.
最后一个障碍是自动更新repo2项目中的NuGet包.由于我不知道repo1中的库何时会更新(我不应该),我想在repo2中的项目上进行某种构建事件,它将自动更新NuGet包.我目前只有一个预构建事件,但由于packages.config文件包含已安装软件包的版本号,我不断在repo2中获取修改过的文件(packages.config文件得到更新).
所以我的问题是:什么是自动升级NuGet包而不破坏我的repo2 VCS的好方法?ScottGu说这里(在评论中)可以将软件包升级挂钩到CI版本,但他没有说明我当前的解决方案是如何混乱的.有没有我错过的内置方式?或者更好的解决方案?
我有两个包\项目"A"和"B".其中"B"取决于"A"并将其用作参考.当我在TFS中的构建过程构建"A"时,它正在从nuspec创建一个nuget包并给它一个新版本并将它放在我的TFS私有包上.
我的问题是在每个"B"构建中创建一个定义良好的"B"包.在"B.nuspec"文件中,我编写了当前"A"包的版本:
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="A" version="[1.0.0.3]" />
</group>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
当我正在创建一个新的"A"软件包时,我正在更新"B"项目以使用新的"A"版本 - >这也会按预期更新"packages.config"和最新的"A"版本.问题是"B"的构建过程从具有旧"A"依赖性的nuspec文件创建"B"包.我希望它使用"packages.config"中的"A"版本.
有自动方式吗?(没有手动更改nuspec文件的每个新版本的"A")我想创建一个小的"Post-Build"进程,从B->"packages.config"读取版本并将其写入"B.nuspec" "A"依赖关系部分中的文件.TFS是否以更简单的方式支持它?