如何自动更新NuGet软件包依赖?

9
我有两个项目“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>

每次我创建一个新的“A”包时,我都会更新“B”项目以使用新的“A”版本——这也会按预期更新“packages.config”中的最新“A”版本。问题在于,“B”的构建过程会从旧的“A”依赖项的nuspec文件中创建“B”包。我希望它使用“packages.config”中的“A”版本。
有没有自动的方法可以做到这一点?(不需要手动更改每个新版本的“A” nuspec文件)。我想创建一个小的“后期构建”进程,从B->“packages.config”中读取版本,并将其写入“A”依赖项部分的“B.nuspec”文件中。TFS是否支持更简单的方式?
2个回答

5
我添加了一个新的构建后事件,触发一个脚本,从“packages.config”文件中获取版本号并将它们写回到nuspec文件中。
我把这个脚本和构建后事件上传到我的GIT上,供任何需要的人使用。 https://github.com/avrum/NuspecAutoUpdate

1

嗯,它并不是那么相似...我将我制作的后事件脚本添加到了这个问题中。谢谢。 - Aviram Fireberger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接