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

如何在AssemblyInfo.tt中引用GitHub Workflow的GitHub_Run_ID环境变量?

在AssemblyInfo.tt中获取GitHub Workflow的GITHUB_RUN_ID环境变量

这个需求完全可行,GitHub Actions会将预设环境变量注入构建进程,而T4模板可以直接访问系统环境变量,具体实现步骤如下:

1. 修改AssemblyInfo.tt模板读取环境变量

在T4模板中插入C#代码块读取GITHUB_RUN_ID,并将其注入生成的AssemblyInfo.cs中。示例代码如下:

<#@ template language="C#" #>
<#@ output extension=".cs" #>
<#
// 读取GitHub Actions环境变量,本地开发时用默认值兜底
string githubRunId = Environment.GetEnvironmentVariable("GITHUB_RUN_ID") ?? "LocalBuild";
#>

using System.Reflection;

// 将GitHub Run ID注入到程序集元数据中
[assembly: AssemblyMetadata("GitHubRunId", "<#= githubRunId #>")]
// 或者替换到版本信息中
[assembly: AssemblyInformationalVersion("1.0.0.<#= githubRunId #>")]

// 其他原有AssemblyInfo配置...

2. 确保构建过程自动执行T4模板转换

在项目的.csproj文件中添加配置,让MSBuild/dotnet build在构建时自动运行T4模板生成代码:

<ItemGroup>
  <None Include="AssemblyInfo.tt">
    <Generator>TextTemplatingFileGenerator</Generator>
    <LastGenOutput>AssemblyInfo.cs</LastGenOutput>
  </None>
</ItemGroup>

3. GitHub Workflow配置无需额外操作

GitHub Actions的GITHUB_RUN_ID是预设环境变量,会自动注入到构建进程中。你的Workflow构建步骤只需正常执行构建命令即可,示例:

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'
      - name: Build application
        run: dotnet build --configuration Release
      # 后续部署步骤...

注意事项

  • 本地开发时,GITHUB_RUN_ID环境变量不存在,模板中必须设置默认值(如示例中的LocalBuild),避免生成失败。
  • 若使用Visual Studio开发,确保已安装T4模板工具,否则手动保存模板时不会自动生成代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:58:18