我需要在TFS构建服务器上的assemblyversions中包含changesetid。我创建了powershell脚本,更新[AssembliVersion]属性是所有assemblyinfo.cs。
如何获取tfs中文件夹的当前变更集?
目前我有这样的事情:
JOIN
但它返回最新的变更集ID,而不是正在构建的变量集
答案 0 :(得分:1)
如果您在门禁签到范围内执行此操作并且尚未提交更改,则不会有“当前”更改集。我们做了类似的事情,但是在构建完成之后,那时只需查询buildserver以获取最新版本,如下所示;
var buildDetail = context.GetExtension<IBuildDetail>();
var vcserver = buildDetail.BuildServer.TeamProjectCollection.GetService<VersionControlServer>();
var queryHistoryResult = vcserver
.QueryHistory(versionControlPath, VersionSpec.Latest, 0,
RecursionType.Full, null, null, null, 1,
true, false)
.Cast<Changeset>()
.ToList();
if (!queryHistoryResult.Any())
{
throw new ChangesetNotFoundException("GetLatestChangesetActivity: No current changeset available.");
}
var changeset = queryHistoryResult.First();
与您的代码看起来非常相似。
答案 1 :(得分:1)
如果您正在使用新的构建系统,那么您应该能够使用环境变量$ env:BUILD_SOURCEVERSION 见:https://msdn.microsoft.com/en-us/library/vs/alm/build/scripts/variables
对于XAML构建,您可以使用TF_BUILD_SOURCEGETVERSION环境变量:https://msdn.microsoft.com/en-us/library/hh850448%28v=vs.120%29.aspx
答案 2 :(得分:0)
要从指定的版本获取关联的变更集摘要,您可以使用InformationNodeConverters.GetAssociatedChangesets Method。