TFS 2012构建期间的GetBranch名称
问题描述:
TFS 2013中存在用于分支名称的环境变量。然而,我的公司仍然使用TFS 2012.TFS 2012构建期间的GetBranch名称
有谁知道如何在TFS 2012版本中获得分支名称?
在TFS Build api中是否有一个具有分支名称属性的类?
我还没有找到。
预先感谢您
答
您可以访问配置了此通过构建IBuildDetails的路径。
只需使用VersionControlServer类查询 BranchObjects,然后检查哪一个是你的工作文件夹 根。
示例代码:
IBuildDetail buildDetail = context.GetExtension<IBuildDetail>();
var workspace = buildDetail.BuildDefinition.Workspace;
var versionControlServer = buildDetail.BuildServer.TeamProjectCollection.GetService<VersionControlServer>();
var branches = versionControlServer.QueryRootBranchObjects(RecursionType.Full);
var referencedBranches = listOfFilePaths.GroupBy(
file =>
branches.SingleOrDefault(
branch => file.ServerItem.StartsWith(branch.Properties.RootItem.Item)
)
).Where(group => group.Key != null);
更多详细信息,请参阅在这个问题jessehouwing的回复:Include branch name in post build event on Team Build