如何通过用于构建它的控制器找到TFS构建?

时间:2015-12-17 21:35:20

标签: tfs tfs2013

这是我的代码:

var tfs = new TfsTeamProjectCollection(new Uri(TFS_SERVER_URL));
tfs.EnsureAuthenticated();

var buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));
var spec = buildServer.CreateBuildDetailSpec(projectName);
spec.QueryOrder = BuildQueryOrder.FinishTimeDescending;
spec.MinFinishTime = DateTime.Now.Subtract(minFinishTimeOfs);
spec.MaxFinishTime = DateTime.Now.Subtract(maxFinishTimeOfs);
if (reason != null)
{
    spec.Reason = reason.Value;
}
var buildDetails = buildServer.QueryBuilds(spec).Builds;

如您所见,我知道如何按时间查询并建立理由。但是我希望能够通过构建控制器进行查询,而我却看不到如何有效地进行查询。低效的方法是在所有构建控制器上获取构建,然后将其过滤掉,但我想避免首先获取不相关的构建细节。

1 个答案:

答案 0 :(得分:0)

没有API可以从构建定义判断来获取IBuildDetail构建。如上所述,您必须首先获取所有构建,并使用IBuildDetail.BuildControllerUri属性过滤掉不需要的构建。