【问题标题】:Include Git revision number inside .NET project在 .NET 项目中包含 Git 修订号
【发布时间】:2012-02-27 11:58:12
【问题描述】:

我正在使用 Git 对 .NET 项目进行源代码控制。有什么方法可以在编译时在我的 EXE 中包含当前的 Git 修订号?

我希望能够为“关于”对话框或类似对话框提供可用的修订号。也许有办法在构建之前更新Settings.vb

【问题讨论】:

  • @TimSchmelter,这个问题与我要问的完全无关......我知道如何获得修订号/哈希。我只是想在已编译的 EXE 中访问它。
  • 好的,那我可能误解了你的问题,不能撤消近距离投票,可以吗?
  • @TimSchmelter,不,但这没问题。关闭一个问题需要 5 个人(或 1 个模组)。

标签: .net vb.net visual-studio git


【解决方案1】:

Lex Li 手动操作的替代方法是使用MSBuildVersioning 机制(也可作为NuGet package 使用)。这需要在您的 csproj 文件中进行一些调整(NuGet 包将为您完成),但它允许您指定一个“模板”文件,该文件将在构建时处理以填写您决定包含的任何信息在模板中。虽然文档似乎没有更新,但最新版本适用于 Git、Mercurial 和 Subversion 存储库。可用的特定于 git 的标签包括 REVNUM(修订号)、REVID(哈希,它更可能有用)、DIRTY(是否有未提交的更改)、BRANCH(当前分支)和 TAGS(任何标签)与修订相关联)。

【讨论】:

    【解决方案2】:

    一种可能的方法是这样的,

    1 Programmatically printing git revision and checking for uncommitted changes

    按照这篇文章学习如何从工作副本中查询修订信息。

    2 修改您的 VB.NET 项目文件,以便在编译之前使用上面的查询结果更新您的文件之一,以将此信息包含到您的可执行文件中。

    第二步需要一些脚本技巧。如果您熟悉 MSBuild 脚本,应该不会太难。

    就个人而言,我可能会在 .NET 中编写自己的控制台应用程序来执行上述命令,然后将其包含在 PreBuild 事件中。

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多