使用 GitVersion 进行 AssemblyInfo.cs 更新

Sev*_*ate 5 .net c# continuous-integration assemblyinfo gitversion

根据文档,当使用参数调用dotnet gitversion/updateassemblyinfo时,它将递归搜索git 存储库中的所有AssemblyInfo.cs文件并更新它们。它将更新以下程序集属性:

  • AssemblyVersion将设置为该AssemblySemVer变量。
  • AssemblyFileVersion将设置为MajorMinorPatch带有附加 .0 的变量。
  • AssemblyInformationalVersion将设置为该InformationalVersion变量。

根据dotnet gitversion不带任何参数调用的输出(从整个 JSON 复制),这些变量当前具有以下值:

  • AssemblySem版本:1.2.0.0
  • 主要次要补丁:1.2.0
  • 信息版本:1.2.0-branch-name.1+104.Branch.branch-name.Sha.f00e3376da35703ab5e5527e44e942e7bd98s098

问题:是否可以在预定义的GitVersion.yml中或以某种方式通过参数“即时”更改这些变量的值dotnet gitversion

原因是我当前的项目历史上不遵循 semver 方案,并且每次都需要将版本四重奏的第三部分设置为特定值,无论分支、标签或任何其他 git 特定信息如何。例如,我们的产品版本类似于v1.2.50.10v02.04.30.01

但是,即使我们不会充分发挥 semver 兼容版本控制的潜力,使用内置功能dotnet gitversion来更新AssemblyInfo.cs文件也会很好。

Geo*_*Geo 1

您可以使用环境变量来构造版本号或 GitVesrsion 变量: https://gitversion.net/docs/reference/variables https://gitversion.net/docs/reference/configuration

例如,如果您想在信息版本中使用环境变量设置 3 个变量,并使用 CommitsSinceVersionSource GitVersion 变量严格递增最后一个变量,则应在 GitVersion.yml 中添加以下内容:

程序集信息格式:'{主要}.{次要}.{env:MY_NUMBER}.{CommitsSinceVersionSource}'