2017-06-29 78 views
0

我們正在轉向基於TFS 2015(更新4)的Web風格構建。通過API獲取關於Web風格構建的信息

我一直能夠使用下面的代碼檢索有關構建的信息,但這並不是檢索通過Web界面創建的新構建。

是否有合理的方法來修改我的代碼以引入遺留構建和新樣式構建?

如果不是,我認爲是時候弄清楚如何使用REST API了。任何提示等效查詢將不勝感激。

TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://SERVERINFO")); 
IBuildServer buildServer = (IBuildServer) tfs.GetService(typeof (IBuildServer)); 

var buildDetail = buildServer.CreateBuildDetailSpec("*"); 
buildDetail.MinFinishTime = DateTime.Now.Date.AddDays(-1); 
buildDetail.InformationTypes = null; 
buildDetail.QueryDeletedOption = QueryDeletedOption.IncludeDeleted; 
buildDetail.MaxBuildsPerDefinition = 1; //Only return the most recent of each build type...or comment out to return all builds with this definition 

var builds = buildServer.QueryBuilds(buildDetail).Builds.Select(.... 

回答

1

舊XAML構建系統使用基於任務 .The SOAP API新的vNet構建系統沒有一個SOAP API。它使用REST API。恐怕你不能修改代碼來獲得新的版本。他們不支持Build vNext,因爲他們是在他們的時間之前編寫的。

除了SOAP API正在慢慢地被REST API取代,特別是在一些新功能中。特別是在一些新功能中。因爲您正在轉向vNext構建TFS2015 update4。強烈建議你stat使用Rest API。

您可以通過查詢REST API directly或使用Team Foundation Server Client NuGet package從C#代碼訪問它。 一個示例:

using System; 
using System.Collections.Generic; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.Build.WebApi; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Uri tfsurl = new Uri("http://xxxx:8080/tfs/CollectionName"); 
      TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(tfsurl); 
      BuildHttpClient bhc = ttpc.GetClient<BuildHttpClient>(); 
      List<Build> builds = bhc.GetBuildsAsync("ProjectName").Result; 
      foreach (Build bu in builds) 
      { 
       Console.WriteLine(bu.BuildNumber); 
      } 
      Console.ReadLine(); 
     } 
    } 
} 

通過在圖書館使用REST API如上,你可能能夠得到這兩個XAML和vNext版本。

相關問題