【问题标题】:Get git commit id for C# .Net Core Application获取 C# .Net Core 应用程序的 git commit id
【发布时间】:2021-06-25 16:48:43
【问题描述】:

我正在为 .NET Core Web api 应用程序工作。我的要求是在家庭控制器中显示存储库 (Bitbucket) 的最新 local git commit id。有人可以帮我解决这个问题吗?

【问题讨论】:

  • git commit id 是什么?控制器不知道它的源代码受版本控制。也许您可以在编译之前让您的构建管道将其写入配置或源文件?
  • 下面是本地 git commit id “b5519c35cd99cab61e9e8b6357a76ad05d272ca8”,我可以在 git 控制台中使用注释“git describe --long”看到它。我需要这个 id 才能进入 api。

标签: git .net-core .net-assembly webapi


【解决方案1】:

您也有类似的解决方案:

使用链接到 git 的一些数据填充您的 AssemblyInfo.cs 文件,您可以在代码中使用并显示它。

另一个解决方案确实是用git命令行获取它,也许更方便的是,生成一个部分类并将生成的文件添加到.gitignore文件中。

然后,在这里,您可以再次使用该值。

【讨论】:

    【解决方案2】:

    您需要执行以下操作:

    1. 修改构建脚本以查询 Git 提交 ID
      • 有许多不同的选项,具体取决于您构建应用的方式。
      • 示例:MSVS > Project > Properties > Build Events > Pre-build event command line
    2. 脚本需要在某处写入提交 ID。
    3. 您的 C# 应用程序需要以某种方式读取提交 ID。例子:

    【讨论】:

    • 对我来说最好是生成一个在应用程序中编译的文件。
    • 关键问题是您需要在“构建管道”中 something 1)从 Git 读取值,然后 2)将该值写入 C# 的某处。我建议“MSVS 构建事件”作为一种可能性。如果碰巧使用BitBucket CI/CD pipelines,您还有很多其他选择。您可以轻松地拥有一个包含文本 @@GIT_ID@@ 的 C# .cs 源文件,然后让您的“构建脚本”(无论您决定什么)使用“真实”Git 提交 ID 进行文本替换。
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多