如何使用 GitVersion 将提交哈希添加到可执行文件的详细信息
How to add commit hash to details of an executable file using GitVersion
在 a previous question 中,我询问了如何将提交哈希添加到内置于 Visual Studio 中的可执行文件中。
我快到了:我决定使用 GitVersion
并且这个工具确实修改了我的 Visual Studio 项目的 AssemblyInfo.cs
文件,导致一些有趣的信息被添加到我的可执行文件的“详细信息”选项卡。
我非常有信心,通过在我的项目的构建事件(预构建事件命令行)中填写 GitVersion
命令,我可以自动执行此操作。
现在只有一些小事需要处理,如您所见:
GitVersion
命令和结果:
Command Prompt> dotnet-gitversion /updateassemblyinfo
{
"Major": 0,
"Minor": 1,
"Patch": 0,
...
"InformationalVersion": "0.1.0-develop-own.1+101.Branch.develop-own.Sha.99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e",
"BranchName": "develop-own",
...
"Sha": "99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e",
"ShortSha": "99560ad",
...
"CommitDate": "2022-04-25"
}
AssemblyInfo.cs
的先前版本(在 运行 GitVersion
之前):
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
AssemblyInfo.cs
的当前版本(在运行GitVersion
之后):
// [assembly: AssemblyVersion("0.1.0.0")]
[assembly: AssemblyVersion("0.1.0.0")]
[assembly: AssemblyFileVersion("0.1.0.0")]
[assembly: AssemblyInformationalVersion("0.1.0-develop-own.1+101.Branch.develop-own.Sha.99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e")]
您可以看到编译文件的详细信息选项卡中的“产品版本”是如何用 AssemblyInformationalVersion
值填充的,而我希望这是其他信息的组合,例如 AssemblyVersion
,结合 Sha
甚至 ShortSha
:
让我们面对现实吧:我可以启动 GitVersion
,但我不知道如何配置它的结果,而且 GitVersion /?
似乎不是很有帮助。
有人知道怎么做吗?
深入了解后编辑:
与此同时,我了解了如何获取特定信息:
dotnet-gitversion /showvariable "ShortSha"
28c8531
但出现以下问题:在查看第一项(主要、次要和补丁)时,文档提到:
{
"Major": 3,
"Minor": 22,
"Patch": 11,
...
GitVersion
从哪里获得这些信息?
(作为一个愚蠢的测试,我创建了一个新分支 test/4.0.0.0
,但这并没有改变 GitVersion
结果中的 Major
值)
Where is GitVersion getting this information from?
简短的回答是,这取决于 :-)
GitVersion 使用 git 存储库的历史,使用提交消息、标签、分支名称、配置文件的组合,以断言当前版本号。
您可以在此处查看此文档:
https://gitversion.net/docs/reference/version-sources
除此之外,根据您设置的 branching strategy you are using, and what configuration,GitVersion 将为您的存储库断言语义版本号。
如果你 运行 command:
dotnet-gitversion /diag
您应该能够在输出中看到 GitVersion 如何断言存储库的基本版本,以及它如何计算版本号的其余部分。
在 a previous question 中,我询问了如何将提交哈希添加到内置于 Visual Studio 中的可执行文件中。
我快到了:我决定使用 GitVersion
并且这个工具确实修改了我的 Visual Studio 项目的 AssemblyInfo.cs
文件,导致一些有趣的信息被添加到我的可执行文件的“详细信息”选项卡。
我非常有信心,通过在我的项目的构建事件(预构建事件命令行)中填写 GitVersion
命令,我可以自动执行此操作。
现在只有一些小事需要处理,如您所见:
GitVersion
命令和结果:
Command Prompt> dotnet-gitversion /updateassemblyinfo
{
"Major": 0,
"Minor": 1,
"Patch": 0,
...
"InformationalVersion": "0.1.0-develop-own.1+101.Branch.develop-own.Sha.99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e",
"BranchName": "develop-own",
...
"Sha": "99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e",
"ShortSha": "99560ad",
...
"CommitDate": "2022-04-25"
}
AssemblyInfo.cs
的先前版本(在 运行 GitVersion
之前):
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
AssemblyInfo.cs
的当前版本(在运行GitVersion
之后):
// [assembly: AssemblyVersion("0.1.0.0")]
[assembly: AssemblyVersion("0.1.0.0")]
[assembly: AssemblyFileVersion("0.1.0.0")]
[assembly: AssemblyInformationalVersion("0.1.0-develop-own.1+101.Branch.develop-own.Sha.99560ad4873ab9e04bb8f262aafb5b3ee2fb6c1e")]
您可以看到编译文件的详细信息选项卡中的“产品版本”是如何用 AssemblyInformationalVersion
值填充的,而我希望这是其他信息的组合,例如 AssemblyVersion
,结合 Sha
甚至 ShortSha
:
让我们面对现实吧:我可以启动 GitVersion
,但我不知道如何配置它的结果,而且 GitVersion /?
似乎不是很有帮助。
有人知道怎么做吗?
深入了解后编辑:
与此同时,我了解了如何获取特定信息:
dotnet-gitversion /showvariable "ShortSha"
28c8531
但出现以下问题:在查看第一项(主要、次要和补丁)时,文档提到:
{
"Major": 3,
"Minor": 22,
"Patch": 11,
...
GitVersion
从哪里获得这些信息?
(作为一个愚蠢的测试,我创建了一个新分支 test/4.0.0.0
,但这并没有改变 GitVersion
结果中的 Major
值)
Where is GitVersion getting this information from?
简短的回答是,这取决于 :-)
GitVersion 使用 git 存储库的历史,使用提交消息、标签、分支名称、配置文件的组合,以断言当前版本号。
您可以在此处查看此文档:
https://gitversion.net/docs/reference/version-sources
除此之外,根据您设置的 branching strategy you are using, and what configuration,GitVersion 将为您的存储库断言语义版本号。
如果你 运行 command:
dotnet-gitversion /diag
您应该能够在输出中看到 GitVersion 如何断言存储库的基本版本,以及它如何计算版本号的其余部分。