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

时间:2013-10-21 08:12:43

标签: c# git tfs branch tfs2013

有没有办法生成一些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

这很好用。

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

1 个答案:

答案 0 :(得分: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]