2016-08-01 48 views
0

我有下一個情況,而且我是堆棧。TFS 2015.按項目獲取收藏名稱

我正在使用Microsoft.TeamFoundation類從c#存儲的查詢中獲取工作項。我知道服務器名稱,項目名稱和存儲的查詢名稱。所以我可以執行存儲的查詢並接收所有WorkItem。

但比我必須創建一個直接鏈接到這個項目。根據文檔,這個鏈接應該像

http:// ServerName:8080/tfs/CollectionName/ProjectName/_workitems/edit/Id 

所以,在執行查詢之前,我知道ServerName,ProjectName和工作項的Id。但我無法在任何地方找到ProjectName。

所以我的問題是。如何,知道ServerName,ProjectName,WorkItemId和存儲查詢名稱獲取CollectionName?

或。如何創建知道ItemsId的工作項目鏈接?

P.S. GetArtifactUrl不是正確的方法。

感謝您的幫助!

+0

哪個URL你是否在瀏覽時通常使用瀏覽工作項目,當你正常工作與這個團隊項目(提示看你的)?或者您是否嘗試在所有團隊項目集合中創建搜索內容? –

+0

你的問題可以用至少3種方式解釋。您是在內部TFS服務器上還是在Visual Studio Team Services上嘗試此操作? –

+0

我使用的是本地TFS服務器 – Vitalii

回答

1

害怕沒有這樣的API來實現這一點。然而,作爲一種變通方法,您可以列出通過客戶端API的所有集合的名稱,如下圖所示:

 Uri configurationServerUri = new Uri(URL); 
     TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(configurationServerUri); 
            ITeamProjectCollectionService tpcService = configurationServer.GetService<ITeamProjectCollectionService>(); 

    foreach (TeamProjectCollection tpc in tpcService.GetCollections()) 
           { 
            ListCollection.Add(tpc.Name); 
           } 

更多的方法供大家參考:

+0

此解決方案需要另一個lvl的訪問權限。任何其他想法? – Vitalii

+0

也許你可以嘗試通過TFS數據庫找到它。 –

+0

@Patrick:不需要遍歷多個數據庫,因爲tpc鏈接到數據庫? –