如何自动更新nuget包依赖?

时间:2017-04-12 07:24:52

标签: tfs nuget nuget-package nuget-server nuspec

我有两个包\项目" A"和" B"。在哪里" B"取决于" A"并用它作为参考。 当我在TFS中的构建过程正在建立" A"它从nuspec创建了一个nuget包并给它一个新版本并将它放在我的TFS私有包上。

我的问题是创造一个定义良好的" B"包装在每个" B"建立。在" B.nuspec" file我写了当前的版本" A"包:

<dependencies>
    <group targetFramework=".NETFramework4.5">
        <dependency id="A" version="[1.0.0.3]" />
    </group>
</dependencies>

我什么时候创造一个新的&#34; A&#34;包我更新&#34; B&#34;项目使用新的&#34; A&#34;发布 - &gt;这也更新了&#34; packages.config&#34;最新的&#34; A&#34;版本符合预期。 问题在于&#34; B&#34;创造&#34; B&#34;来自nuspec文件的包,其旧依赖关系为&#34; A&#34; 。我希望它能使用&#34; A&#34;来自&#34; packages.config&#34;。

的版本

有自动方式吗?(无需手动更改nuspec文件的每个新版本&#34; A&#34;)我想创建一个小的&#34;帖子-build&#34;从B->读取版本的过程。 &#34; packages.config&#34;并写在&#34; B.nuspec&#34;文件在&#34; A&#34;依赖部分。 TFS是否以更简单的方式支持它?

2 个答案:

答案 0 :(得分:3)

我添加了一个新的帖子构建事件,该事件触发了一个脚本,该脚本从&#34; packages.config&#34;中获取版本。文件并将它们写回nuspec文件。

我将脚本和post build事件上传到我的GIT,供任何需要它的人使用。

https://github.com/avrum/NuspecAutoUpdate

答案 1 :(得分:1)

此问题类似于在构建时Cannot automatically update a NuGet package to the latest version during build

自动更新NuGet包

您需要在构建过程/构建定义中添加新的构建步骤(例如powershell脚本)才能实现它。