0

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

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

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

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

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

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

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

git rev-parse --abbrev-ref HEAD

这工作正常。

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

4

1 回答 1

1

我从来没有不幸不得不使用 TFS,所以在那里无能为力。

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

将您的文件更改为:

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

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

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

于 2013-10-21T08:35:03.990 回答