2016-11-10 45 views
0

尋找一種方法來查找集合中的項目如何構建,而不是按項目檢查項目以找出結果。如何檢查構建的TFS2013集合

有一個簡單的項目名稱與它的構建。

+0

什麼是項目的「名稱」?您有構建定義構建的cs/vbproj或sln文件的名稱? – DaveShaw

回答

0

不,你不能沒有簡單的方法來實現這一點。構建定義是在團隊資源管理器 - 構建新構建定義中創建的。這是項目級別,而不是團隊項目收集級別。來源鏈接:Create or edit a build definition


更新

如果你想獲得類似的結果來建立在團隊資源管理器,您可能需要使用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

+0

我對TFS有全面的管理權限。所以我可以進入每個項目,但我有兩個集合超過100個項目。因此,不得不用Team Explore來檢查每一個變得非常乏味。唯一我無法訪問的是構建控制器,或者知道有多少是其他的,因爲這是由需要它的團隊管理的。 – LordRazon

+0

你想獲得構建定義還是僅僅構建?如果你想在Team Explore中獲得相似的構建結果,你可能需要使用TFS API來實現這一點,通過使用'IBuildServer.QueryBuilds'。詳細信息請參閱此博客:[使用IBuildServer.QueryBuild獲取構建列表的最快方法](http://incyclesoftware.com/2012/09/fastest-way-to-get-list-of-builds-using-ibuildserver-querybuilds -2 /) –

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 "*****************************"; 
}