You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET新手求助:如何在网站显示Git提交SHA值?

如何在ASP.NET网站显示Git提交哈希值

嘿,作为ASP.NET纯新手,这个需求真的很实用——毕竟多版本发布后,快速确认当前运行版本对应的Git提交太重要了!我给你几个类似[assembly: AssemblyVersion("1.0.*")]的简便方案,不用复杂配置就能搞定:

方法1:利用AssemblyInformationalVersion嵌入哈希

这是最接近你提到的AssemblyVersion写法的方式,因为它也是通过程序集属性来存储信息:

  • 打开项目里的AssemblyInfo.cs(如果是ASP.NET Core项目,可能需要手动添加,或者直接编辑项目文件)
  • 添加一行属性,把Git短哈希加进去:
    [assembly: AssemblyInformationalVersion("1.0.0-abc123")]
    
    这里的abc123就是你当前Git提交的短哈希(可以通过在命令行执行git rev-parse --short HEAD获取)
  • 在网站页面里,通过以下代码获取并显示这个哈希:
    using System.Reflection;
    
    var infoVersion = Assembly.GetEntryAssembly()
                              .GetCustomAttribute<AssemblyInformationalVersionAttribute>()
                              .InformationalVersion;
    // 提取哈希部分,比如如果是"1.0.0-abc123",就取后面的abc123
    var commitHash = infoVersion.Split('-').Last();
    
    然后把commitHash输出到页面上就行啦!

如果不想每次手动改哈希,可以用自动构建注入:

  • 安装dotnet-gitversion工具(命令行执行dotnet tool install --global GitVersion.Tool)
  • 在项目文件(.csproj)里添加配置,让它自动把Git哈希注入到InformationalVersion:
    <PropertyGroup>
      <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
      <GitVersion_InformationalVersion>$(GitVersion_SemVer)-$(GitVersion_ShortSha)</GitVersion_InformationalVersion>
    </PropertyGroup>
    
    这样每次构建时,工具会自动把当前提交的哈希填进去,完全不用手动操作!

方法2:构建时生成哈希类文件

这个方法更直接,适合不想碰程序集属性的新手:

  • 打开项目的构建事件(右键项目→属性→生成事件→预生成事件命令行)
  • 输入以下命令,让Git把当前短哈希写入一个类文件:
    git rev-parse --short HEAD > "$(ProjectDir)\GitCommitInfo.cs"
    
  • 然后手动创建GitCommitInfo.cs的模板(或者让命令自动生成),内容大概是:
    public static class GitCommitInfo
    {
        public const string ShortHash = "abc123";
    }
    
    (注:预生成事件会覆盖文件里的哈希值,所以第一次创建时可以先写个占位符)
  • 之后在页面里直接调用GitCommitInfo.ShortHash就能显示当前提交的哈希了!

方法3:ASP.NET Core专用——配置注入

如果你用的是ASP.NET Core,还可以把哈希写入appsettings.json,然后通过依赖注入获取:

  • 构建时用命令把哈希写入appsettings.json(类似方法2的构建事件)
  • 在Program.cs里读取配置:
    var builder = WebApplication.CreateBuilder(args);
    var commitHash = builder.Configuration["GitCommitHash"];
    
  • 然后把commitHash注入到页面或者视图里显示。

这些方法里,我最推荐方法1的自动注入版本,既像你熟悉的AssemblyVersion写法,又能自动同步Git哈希,完全不用手动维护!

内容的提问来源于stack exchange,提问作者Krzysiek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:37:04