如何自动更新nuget包的依赖关系?

问题描述:

我有两个包\项目“A”和“B”。其中“B”取决于“A”并将其用作参考。 当我在TFS中的构建过程构建“A”时,它将从nuspec创建一个nuget包并给它一个新版本,并将其放到我的TFS私有包中。如何自动更新nuget包的依赖关系?

我的问题是在每个“B”构建中创建一个定义良好的“B”包。在“B.nuspec”文件我写了当前“A”包的版本:

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

当过我创建一个新的“A”包我更新“B”项目中使用新的“A”版本 - >这也会按预期更新最新的“A”版本的“packages.config”。 问题是,“B”的构建过程从nuspec文件创建“B”包,其中旧的依赖关系为“A”。我希望它使用“packages.config”中的“A”版本。

有没有一种自动的方式来做到这一点?(无需手动更改nuspec文件的每个新版本的“A”)我想创建一个小的“构建后”过程,从B->“packages.config”中读取版本并将其写入“B.nuspec “文件在”A“依赖项部分。 TFS是否以更简单的方式支持它?

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

我将脚本和帖子构建事件上传到我的GIT,供任何需要它的人使用。

https://github.com/avrum/NuspecAutoUpdate

这个问题类似于自动更新您的NuGet包在构建时Cannot automatically update a NuGet package to the latest version during build

您需要添加一个新的构建步骤(如PowerShell脚本)来构建过程/构建定义来实现它。

+0

那么它不是类似..我添加事件后脚本,我对这个问题做。谢谢 –