Skip to main content

[Azure DevOps] 编译时自动修改版本号

[Azure DevOps] 编译时自动修改版本号 - Hi friends, I hope you are all in good healthzonetechnoupdate, In the article you are reading this time with the title [Azure DevOps] 编译时自动修改版本号 , We have prepared this article well for you to read and take information in it. hopefully the contents of the post what we write you can understand. ok, happy reading.

Title : [Azure DevOps] 编译时自动修改版本号
link : [Azure DevOps] 编译时自动修改版本号

read also


[Azure DevOps] 编译时自动修改版本号

1. 需求

在使用 Pipeline 自动化 CI/CD 流程的过程中,我还还需要自动修改程序集的版本号。这个功能 EdiWang 和LeoLaw 都写文章讲解过做法。不过我的项目基本都是 .Net Framework 项目,而且我的版本号规则也不一样,所以这里分享一下我的做法。

我用的规则版本号规则是 [Major].[Minor].[BuildId].0,其中:

  • 进行不兼容的 API 更改时,Major 将会增加
  • 以后向兼容方式添加功能时,Minor 将会增加
  • Buildid 是一个也称为运行 ID 的内部不可变 ID, 它在整个组织中是唯一的。
  • 第 4 位保留不用

2. 使用变量组定义 'Major' 和 'Minor'

MajorMinor 只有在发布新版后才会修改,因为同一个项目有几个 Pipeline(测试用、发布用等),所以我将它们定义在变量组中。定义变量组的过程如下:

  1. 打开 Library 选项卡,然后点击 + Varible group
  2. 输入 Variable group name,这里我就随便写了个 'My variable group'。
  3. 启用"Allow access to all pipelines",允许所有 Pipeline 使用。
  4. 点击左下角的 + Add 按钮添加变量。如果要加密存储,可以选择每个变量行末尾的锁定图标,这样变量的 Value 会以 ******* 的方式显示。
  5. 最后点击 Save 保存。

创建变量组后,打开要使用这个变量组的 Pipeline,然后切换到 Variables 选项卡,在左边的列表中选中 Variable groups,在打开的页面中点击 Link variable group,然后在打开的变量组列表中选中刚刚创建的变量组,点击 Link,完成后这个页面显示如下。

如果要在 YAML 上进行同样的操作,只需要在 YAML 中添加这句:

variables:- group: My variable group

3. 使用预定义的 Build.BuildId 变量

Azure Pipelines 提供了一批预定义变量,,用于在 Pipeline 的任务中共享常见信息。详细的预定义变量列表可以参考 预定义变量 - Azure Pipelines Microsoft Docs 这个文档。

要唯一地标识一个 Pipeline,可以参考 配置运行或生成号 这个文档中列出的变量,例如 $(Date:yyyyMMdd)$(Rev:.r) 输出为 20200828.1,即 220年8月28日的第一次生成。

这里我选择了 Build.BuildId 作为版本号的第三位,它是每次一运行 Pipeline 都会递增的一个整数变量,而且它在整个组织中是唯一的,很适合用来做版本号。

4. 使用扩展更新版本号

懒得考虑如何更新版本号的话,可以使用 MarketPlace 里提供的扩展来处理。我选择了 Richard Fennell's Manifest Versioning Build Tasks Azure DevOps extension 这个扩展,安装后在添加任务的列表里输入 "Version Assemblies" 找到 Version .NET Assemblies 这个任务并点击 Add 添加这个任务。

将新添加的 Task 拖动到 Build solution 的任务之前:

然后在任务的配置表单中的 Version Number 输入框中,输入:

$(AssemblyVersion).$(Build.BuildId).0

其中 AssemblyVersion 是在变量组中定义的变量,Build.BuildId 是 AzurePipelines 预定义的变量。

上面的操作在 YAML 中相当于:

name: '1.0.0.$(Rev:r)'steps:- task: richardfennellBM.BM-VSTS-Versioning-Task.Version-Assemblies-Task.VersionAssemblies@2 displayName: Version the assemblies inputs: Path: '$(Build.SourcesDirectory)' VersionNumber: '$(AssemblyVersion).$(Build.BuildId).0' InjectVersion: true FilenamePattern: 'AssemblyInfo.*' OutputVersion: 'OutputedVersion'

5. 最后

Pipeline 运行完毕后,输出的桌面应用程序的版本信息如下,可以看到文件版本和产品版本的版本号都已经改为 4.2.127.0

更多的信息可以参考下面给出的链接:

Incremental Build Number for .NET Core via Azure DevOps

Azure Devops_Tfs 编译的时候自动修改版本号 - LeoLaw - 博客园









原文转载:http://www.shaoqun.com/a/817653.html

跨境电商:https://www.ikjzd.com/

和两个黑人同时做 我被两个老外抱着高爽翻了:http://www.30bags.com/m/a/249821.html

男朋友吻我下面过程 男生㖭女人下部技巧:http://lady.shaoqun.com/m/a/247525.html

老板叫我穿少一点去他办公室 上司撕开我的裙子和乳罩:http://lady.shaoqun.com/m/a/248401.html

mav:https://www.ikjzd.com/w/2414


1.需求在使用Pipeline自动化CI/CD流程的过程中,我还还需要自动修改程序集的版本号。这个功能EdiWang和LeoLaw都写文章讲解过做法。不过我的项目基本都是.NetFramework项目,而且我的版本号规则也不一样,所以这里分享一下我的做法。我用的规则版本号规则是[Major].[Minor].[BuildId].0,其中:进行不兼容的API更改时,Major将会增加以后向兼容方式添
转运四方:https://www.ikjzd.com/w/1342
白色清关:https://www.ikjzd.com/w/1410
深圳金沙湾海上游玩项目有哪些?:http://www.30bags.com/a/397432.html
中国安徽黄山小吃:冻米糖 - :http://www.30bags.com/a/407102.html
车上用裙子挡着做h 车子颠簸一下猛地进去:http://lady.shaoqun.com/a/247951.html
bsci 认证:https://www.ikjzd.com/w/2339
慧聪商务网:https://www.ikjzd.com/w/1836
夫妻之间,为什么多数丈夫比妻子先去世,这3个因素是"元凶":http://lady.shaoqun.com/m/a/268583.html
班长第一次好滑好紧 班长你下面太紧进不去:http://lady.shaoqun.com/m/a/247581.html
怎么才能把私处的毛剪掉?听懂一个词:http://www.30bags.com/a/445882.html
女性三个"私密"的地方,愿意让你看的,都是感性的:http://www.30bags.com/a/445883.html
午夜情怀深沉。老公在睡梦中说话,一边叫女老板的名字一边打:http://www.30bags.com/a/445884.html


That's the article [Azure DevOps] 编译时自动修改版本号

That's it for the article [Azure DevOps] 编译时自动修改版本号 this time, hopefully can be useful for all of you. okay, see you in another article post.

You are now reading the article [Azure DevOps] 编译时自动修改版本号 with link address https://zonetechno-update.blogspot.com/2021/06/azure-devops.html
Comment Policy: Please write your comments that match the topic of this page post. Comments containing links will not be displayed until they are approved.
Open Comments
Close Comment