如何自动更新nuget包依赖?

How to automatically update nuget package dependency?

我有两个包\项目"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" 版本

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

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

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

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

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

https://github.com/avrum/NuspecAutoUpdate