我有两个包\项目“A”和“B”。其中“B”取决于“A”,并将其用作引用。
当我在TFS中的构建过程正在构建“A”时,它是从nuspec中创建一个nuget包,并为其提供新版本并将其放在我的TFS私有(private)包中。

我的问题是在每个“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”的生成过程从nuspec文件中使用“A” 的旧依赖项创建“B”包。我希望它使用“packages.config”中的“A”版本。

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

最佳答案

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

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

https://github.com/avrum/NuspecAutoUpdate

08-27 00:12