寻找一种方法来查找集合中的项目如何构建,而不必逐个项目检查以查找。
使用构建它的项目名称简单。
答案 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 "*****************************";
}