2015-12-17 18 views
0

这里是我的代码:如何查找用于构建它的控制器的TFS构建?

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; 

正如你所看到的,我知道如何按时间查询和建立的原因。但我希望能够通过构建控制器进行查询,并且我不明白如何有效地执行此操作。效率低下的方法是在所有构建控制器中获取构建,然后将其过滤掉,但我希望避免首先获取不相关的构建细节。

回答

0

没有API来从构建定义来判断获取IBuildDetail构建。正如你在上面提到的,你必须首先获得所有的构建,并用IBuildDetail.BuildControllerUri属性过滤掉不需要的构建。

相关问题