2012-06-18 60 views
3

我想訪問團隊項目的構建信息以在我們公司的其他應用程序中使用它們。 我需要的是要求團隊項目的所有構建。 我需要一個像信息: - UNC路徑的Outlut被複制到 - 名稱 - 構建 日期 - 誰開始或觸發生成(如果可能)通過Web服務訪問Team Foundation Server的信息

我沒有找到任何詳細描述瞭如何訪問通過Web服務的TFS信息。我學到的是TFS有一個服務接口。

我希望任何人都可以給我一點點提示如何達到我的目標。如果任何人有一些示例代碼,我一定會很高興:-)

回答

2

將類似的東西會有所幫助:

using System; 
using Microsoft.TeamFoundation.Build.Client; 
using Microsoft.TeamFoundation.Client; 

namespace BuildDetails 
{ 
    class Program 
    { 
     static void Main() 
     { 
      TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsURI")); 
      var buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer)); 

      IBuildDefinition buildDefinition = buildService.GetBuildDefinition("TeamProjectName", "BuildDefinitionName"); 
      IBuildDetail[] buildDetails = buildService.QueryBuilds(buildDefinition); 

      foreach (var buildDetail in buildDetails) 
      { 
       IBuildInformation buildInformation = buildDetail.Information; 
       Console.Write(buildDetail.BuildNumber+"\t"); 
       Console.Write(buildDefinition.Name+"\t"); 
       Console.Write(buildDetail.Status+"\t"); 
       Console.Write(buildDetail.StartTime+"\t"); 
       Console.WriteLine((buildDetail.FinishTime - buildDetail.StartTime).Minutes); 
      } 
     } 
    } 
} 

這僅僅是TFS-SDK的標準用法,我認爲它與你正在尋找的信息提供。

+0

感謝這個偉大的例子。我沒有得到它運行,因爲我總是得到一個「HTTP 404頁找不到」錯誤回來。 我的調用如下所示: TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(「http:// MyTfsServerHostName:8080/tfs」)); 這是我配置Visual Studio的URL ......我也嘗試了http:// MyTfsServerHostName以及錯誤501 – sebastianmehler

+3

在團隊資源管理器中,右鍵單擊Team Collection的主節點並選擇屬性。使用你在'Url'屬性中看到的東西(類似於'http:// TFSName:8080/tfs/CollectionName') – pantelif

+0

謝謝,現在就開始工作。謝謝你的試用幫助:-) – sebastianmehler

1

我建議使用wrapper for the wrapper來訪問TFS,因爲它更容易,可能足以滿足您的需求。如果不是,我建議使用TFS SDK

如果你仍然想要降低,那麼請閱讀SO

相關問題