【问题标题】:Include branch name in a C# constant?在 C# 常量中包含分支名称?
【发布时间】:2013-10-29 15:13:13
【问题描述】:

有没有办法生成一些 C# 常量,其值是当前分支的名称?

我的目标是生成这样的东西:

public static Constants {
    public const string MyProductVersionName = "release/V0.2";
}

release/V0.2是当前分支的名称)。

我的问题同时适用于 TFS 2013 和/或 GIT,因为我正在评估这两种源代码控制服务。

我查看Tf Command-Line Utility Commands 以查看是否可以调整预构建事件,但我没有找到如何获取当前分支名称。

使用git,我发现在another answer on SO这个命令行:

git rev-parse --abbrev-ref HEAD

这很好用。

在这两种情况下,生成此类文件的正确方法是什么?

【问题讨论】:

  • 借助 TFS 2013,您可以使用 Git 存储库。
  • @AndrewClear:我知道。但是无论是否在 TFS 上托管了一个集中的 git repo 都不会改变分支生成...

标签: c# git tfs branch


【解决方案1】:

我从来没有遇到过不得不使用 TFS 的不幸,所以无能为力。

使用 git,您已经确定了如何获取当前分支名称。然后,诀窍是使用它来替换文件中的字符串作为预构建事件。我建议为此使用 powershell,因为它可以提供比 cmd 更易于使用的搜索/替换功能。

将您的文件更改为:

public static Constants 
{
    public const string MyProductVersionName = "[BRANCH_VALUE]";
}

然后查看How to capture output in a variable rather than a logfile?,了解将 git 的输出捕获到 powershell 变量的详细信息。然后How can you find and replace text in a file using the Windows command-line environment?了解搜索和替换的详细信息。

然后的想法是在预编译事件中用 git 分支替换 [BRANCH_VALUE]

【讨论】:

  • 我怀疑我也可以使用依赖于 endte 的 T4 模板...但是构建后脚本会更容易创建。只是在等待 TFS 解决方案:)。 tf.exe branches . /t 提供信息,但需要大量解析。
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多