使用GitVersion进行AssemblyInfo.cs更新

5
根据文档,当使用/updateassemblyinfo参数调用dotnet gitversion时,它会递归搜索git repo中的所有AssemblyInfo.cs文件并更新它们。它将更新以下程序集属性:
- AssemblyVersion将设置为AssemblySemVer变量。 - AssemblyFileVersion将设置为MajorMinorPatch变量加上.0。 - AssemblyInformationalVersion将设置为InformationalVersion变量。
这些变量当前根据没有任何参数调用的dotnet gitversion的输出具有以下值(从整个JSON复制):
- AssemblySemVer: 1.2.0.0 - MajorMinorPatch: 1.2.0 - InformationalVersion: 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文件的功能也是很不错的。

根据您需要/想要的程度,您是否考虑过使用SourceLink呢?也许不适用,但还是提出来以防万一。 - pinkfloydx33
dotnet gitversion/updateassemblyinfo开关,你尝试使用过吗? - Pavel Anikhouski
@PavelAnikhouski,是的,我做了 - 它在帖子的第一行中提到了 :) 问题是我需要设置版本四元组的所有4个部分,在GitVersion.yml中似乎只能设置前3个(major,minor和patch) - 最后一个将始终为0,但我需要一种方法来设置它。 - Sevenate
@pinkfloydx33 什么是 SourceLink? - Sevenate
@Sevenate 抱歉,我明白了。他们的文档说您只能在运行时覆盖“tag-prefix”配置值。 - Pavel Anikhouski
@PavelAnikhouski 是的,我已经看到了,目前这是唯一可覆盖的参数,但不幸的是它并不相关。 - Sevenate
1个回答

1

在这里,您可以找到一个完整的示例:https://github.com/geobarteam/AssemblyInfoGitVersion - Geo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接