【发布时间】:2021-02-16 17:50:13
【问题描述】:
根据文档,当使用/updateassemblyinfo 参数调用dotnet gitversion 时,它将递归搜索git repo 中的所有AssemblyInfo.cs 文件并更新它们。它将更新以下程序集属性:
-
AssemblyVersion 将设置为
AssemblySemVer变量。 -
AssemblyFileVersion 将设置为带有附加 .0 的
MajorMinorPatch变量。 -
AssemblyInformationalVersion 将设置为
InformationalVersion变量。
根据dotnet gitversion 的输出,这些变量当前具有以下值,在没有任何参数的情况下调用(从整个 JSON 中复制):
- AssemblySemVer:1.2.0.0
- MajorMinorPatch:1.2.0
- 信息版本:1.2.0-branch-name.1+104.Branch.branch-name.Sha.f00e3376da35703ab5e5527e44e942e7bd98s098
问题:是否可以在预定义的 GitVersion.yml 中更改这些变量中的值,或者以某种方式通过参数“即时”更改为 dotnet gitversion?
原因是我当前的项目在历史上没有遵循 semver 方案,并且每次都需要将版本四重奏的第 3 部分设置为特定值,而不管分支、标签或任何其他 git-specifics。例如,我们的产品版本看起来像 v1.2.50.10 或 v02.04.30.01。
但是使用 dotnet gitversion 内置功能更新 AssemblyInfo.cs 文件会很好,即使我们不会充分利用它的 semver 兼容版本控制潜力。
【问题讨论】:
-
取决于您需要/想要多少,您是否考虑过使用 SourceLink?也许不适用,但为了以防万一
-
dotnet gitversion有/updateassemblyinfo开关,你用过吗? -
@PavelAnikhouski,是的,我做到了 - 在帖子的第一行中提到了 :) 问题是我需要设置版本四重奏的所有 4 个部分,在 GitVersion.yml 中似乎我只能设置第一个 3(主要、次要和补丁) - 最后一个将始终为 0,但我也需要一种方法来设置它。
-
@pinkfloydx33 SourceLink 是什么?
-
@Sevenate 对不起,我明白了。他们的文档说您只能动态覆盖
tag-prefix配置值
标签: c# .net continuous-integration assemblyinfo gitversion