在 C# 常量中包含分支名称

本文关键字:分支 包含 常量 | 更新日期: 2023-09-27 18:36:07

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

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

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

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

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

我查看了 Tf 命令行实用程序命令,看看是否可以调整预构建事件,但我没有找到如何获取当前分支名称。

使用 git,我在 SO 这个命令行上的另一个答案中找到了:

git rev-parse --abbrev-ref HEAD

这工作正常。

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

在 C# 常量中包含分支名称

我从来没有不幸不得不使用 TFS,所以在那里帮不上忙。

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

将文件更改为以下内容:

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

然后,请参阅如何在变量而不是日志文件中捕获输出?,了解有关将 Git 的输出捕获到 PowerShell 变量的详细信息。那么如何使用Windows命令行环境查找和替换文件中的文本呢?有关搜索和替换的详细信息。

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