[c#]在.Net dll 中嵌入 git commit 哈希

标签: dll C#
发布时间: 2013/12/2 22:40:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我建一个 C# 应用程序,使用 Git 作为我的版本控制。

有没有办法自动在可执行文件中嵌入的最后提交哈希时我建我的应用程序吗?

例如,打印到控制台的 commit 哈希值将看起来类似:

class PrintCommitHash
{
    private String lastCommitHash = ?? // What do I put here?
    static void Main(string[] args)
    {
        // Display the version number:
        System.Console.WriteLine(lastCommitHash );
    }
}

请注意这在生成时,不运行时,要做,原因是我已部署的可执行文件将没有可访问的 git 回购。

C + + 的一个相关的问题,可在这里

解决方法 1:

我们在 git 中使用标记来跟踪版本。

git tag -a v13.3.1 -m "version 13.3.1"

可以从通过 git 来获取与哈希的版本:

git describe --long

我们的构建过程置于中放程序文件的 AssemblyInformationalVersion 属性的 git 哈希值:

[assembly: AssemblyInformationalVersion("13.3.1.74-g5224f3b")]

一旦您编译的您可以查看从 windows 资源管理器的版本:

enter image description here

你也可以以编程方式通过它:

var build = ((AssemblyInformationalVersionAttribute)Assembly
  .GetAssembly(typeof(YOURTYPE))
  .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false)[0])
  .InformationalVersion;

其中 YOURTYPE 是集具有 AssemblyInformationalVersion 属性中的任何类型。

赞助商