如何检查TFS2013 Build for Builds

时间:2016-11-10 20:55:02

标签: tfs tfs2013

寻找一种方法来查找集合中的项目如何构建,而不必逐个项目检查以查找。

使用构建它的项目名称简单。

2 个答案:

答案 0 :(得分:0)

不,你不可能没有简单的方法来实现这一目标。构建定义在团队资源管理器 - 构建 - 新构建定义中创建。它的项目级别,而不是团队项目收集级别。来源链接:Create or edit a build definition

<强>更新

如果您希望在Team Explore中获得类似的构建结果,则可能必须使用 TFS API 来实现此目的,方法是使用IBuildServer.QueryBuilds

您必须首先知道项目名称,然后才能根据日期过滤器查询构建。您不需要构建的关联工作项,也不需要关联的更改集或其他一些东西。这提高了性能,示例代码如下:

var buildSpec = buildServer.CreateBuildDetailSpec(teamProjectName, buildDefinition);
buildSpec.InformationTypes = null;
buildSpec.MinFinishTime = DateTime.Now.AddHours(-lastXHours);
var buildDetails = buildServer.QueryBuilds(buildSpec).Builds;

更多详情请参阅此博客:Fastest way to get list of builds using IBuildServer.QueryBuilds和此TFS API - How to query builds independent of which build definition they belong to

答案 1 :(得分:0)

如果你提到的项目是TeamProject,你可以创建一个简单的PowerShell脚本来通过TFS API获得这个:

$collectionurl = "http://xxxxxxxx/";
$tfs = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($collectionurl);
$buildservice = $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer]);
$workitemservice = $tfs.GetService([Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore]);
$projects = $workitemservice.Projects;
foreach ($project in $projects)
{
    $builds = $buildservice.QueryBuilds($project.Name);
    Write-Host $project.Name;
    Write-Host "Build Count:"  $builds.Count;
    Write-Host "*****************************";
}