使用自动版本控制最佳实践发布内部 NuGet 包

Publishing an internal NuGet Package with Automatic Versioning best practice

因此,我们正在尝试为我们的一些内部 dll 自动化我们的构建过程和 NuGet 发布,并试图找出什么是 VSTS 自动版本控制的最佳实践。

我一直在阅读这篇文章 (Versioning Nuget Packages CD),其中讨论了用于自动版本控制的 SemVar,这很好,但我想知道是否有一种方法可以将版本控制自动化到 Major.Minor.Patch 架构。我的直觉告诉我这是不合理的,我的意思是流程怎么知道你发布的是 Major、Minor 还是 Patch,但也许我没有想到什么。

无论哪种方式,任何有关版本控制最佳实践的提示都会很棒。我认为至少必须有一种方法可以让我们在承诺掌握并触发构建过程之前仅编辑组装信息,然后将其全部打包并获取新版本。提前致谢。

自动发布 nuget 包版本并相应增加 major/minor/patch,两种建议的方法是 使用 GitFlow 分支模块和 GitVersion手动计算更新版本.

选项 1:使用带有 Gitversion 的 GitFlow 分支模块

如果您在 git 存储库中管理源代码,您可以在 build/release 定义中使用 GitFlow as the branching module. Then you can use GitVersion 任务,它将提供增量版本。

更多详情,可以参考Versioning NuGet packages in a continuous delivery world: part 3

方案二:手动计算更新版本

您可以定义如何更新主要、次要和补丁作为您需要更新的方式。您可以通过添加 PowerShell 任务来实现它:

在变量选项卡中添加变量(例如version)->获取当前版本->设置变量version为当前版本的值->定义更新方式版本(例如为构建更改文件 A commit/changeset,然后更新次要版本)-> 使用更新版本更新变量 version 的值。

在 Nuget 包步骤中,为变量 version 的值指定包版本。然后发布包。

更详细的可以参考Versioning NuGet packages in a continuous delivery world: part 2.

一文Better selection of version numbers