我有代码,它在powershell上获得最后一个成功的构建定义。我如何更改代码,显示最后一次构建。或者如果构建正在进行,是否显示当前构建?
 [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")  
 [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client")  
 [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Common")  
 $tfsCollectionUrl = "http://servertfs:8080/tfs/Test"
 $server = new-object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection(New-Object Uri($tfsCollectionUrl))
 $buildServer = $server.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
 $buildDetail = $buildServer.QueryBuilds("NameProject", "NameBuildDefinition") | where { $_.BuildDefinition.LastGoodBuildUri -eq $_.Uri } #| select BuildNumber
 $buildDetail 发布于 2014-09-17 16:35:53
只需移除将结果限制为“上次成功构建”的过滤器,即可获得所有构建并从中应用适当的过滤器:
$buildDetail = $buildServer.QueryBuilds("NameProject", "NameBuildDefinition") | sort -desc StartTime | select -first 1
$buildDetail | ft BuildNumber, StartTime, Statushttp://www.incyclesoftware.com/2012/09/fastest-way-to-get-list-of-builds-using-ibuildserver-querybuilds-2/:您可能希望考虑使用builddetailspec规范并指定MaxBuildsPerDefinition,因为如果性能是个问题,它可能会更快:Extra
(编辑: MaxBuildsPerDefinition本身将获得第一个构建,但从某个地方开始)
https://stackoverflow.com/questions/24380749
复制相似问题