有没有办法生成一些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
这很好用。
在这两种情况下,生成此类文件的正确方法是什么?
答案 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]
。