因此,我们正在尝试自动化我们的构建过程和NuGet发布我们的一些内部dll,并试图找出什么是VSTS自动版本控制的最佳实践。
我一直在阅读这篇文章(Versioning Nuget Packages CD),其中讨论了SemVar的自动版本控制,这很好,但我想知道是否有一种方法可以将版本控制自动化为Major.Minor.Patch架构。我的直觉告诉我这不合理,我的意思是这个过程怎么能知道你是在发表专业,未成年人还是补丁,但也许我没有想到的东西。
无论哪种方式,任何关于版本控制的最佳实践的提示都会很棒。我认为在我们承诺掌握并触发构建过程然后将其打包并获得新版本之前,我们至少必须有一种方法来编辑程序集信息。提前谢谢。
答案 0 :(得分:1)
以authomcatically方式发布nuget包版本并相应增加major / minor / patch,两种建议方式是使用GitFers分支模块和GitVersion ,手动计算更新版本。
如果您管理在git repo中修改源代码,可以使用GitFlow作为分支模块。然后,您可以在构建/发布定义中使用GitVersion任务,它将提供增量版本。
更多详细信息,您可以参考Versioning NuGet packages in a continuous delivery world: part 3。
您可以按照需要更新的方式定义如何更新major,minor和patch。您可以通过添加PowerShell任务来实现它:
在变量标签中添加变量(例如version
) - >获取最新版本 - >使用当前版本的值设置变量version
- >定义如何更新版本的方式(例如更改文件A用于构建提交/更改集,然后更新次要) - >使用更新版本更新变量version
的值。
在Nuget包步骤中,指定变量{{1}}的值的包版本。然后发布包。
更多详细信息,您可以在文章Versioning NuGet packages in a continuous delivery world: part 2中参考更好的版本号选择。