2017-05-12 160 views
1

我想獲得一個VS 2015擴展來連接當前正在使用的tfs。我找到了解決辦法Visual studio 2015擴展查找tfs url

TeamFoundationServerExt tfExt = DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.TeamFoundationServerExt") as TeamFoundationServerExt; 
return tfExt.ActiveProjectContext.DomainUri; 

不幸的是,我認爲TeamFoundationServerExt並不意味着在Visual Studio中使用2015`can有人證實了這一點,並告訴我應該如何做

回答

0

根據你的描述,我創建了一個使用visual studio 2015演示和測試代碼,名爲tfExt的變量返回null,如果解決方案在VS IDE中打開,則Team Explorer將自動連接到綁定到解決方案的TFS服務器。因此,我們可以使用DTE對象來獲取SourceControlExt對象,然後從其屬性中檢索TFS服務器信息。

VersionControlExt vce; 
VersionControlExplorerExt vcee; 

DTE2 dte = this.ServiceProvider.GetService(typeof(SDTE)) as DTE2; 
dte.ExecuteCommand("View.TfsSourceControlExplorer"); 
vce = dte.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt; 
vcee = vce.Explorer; 
var tfsServerName = vcee.Workspace.VersionControlServer.TeamFoundationServer.Uri; 

請添加以下參考。

using Microsoft.VisualStudio.TeamFoundation.VersionControl; 
+0

感謝您的回覆。 VersionControlExt類的最新文檔(如我使用的TeamFoundationServerExt類)適用於Visual Studio 2013.它看起來像沒有Microsoft的替代品.VisualStudio.TeamFoundation.dll –

+0

是的,dll(Microsoft.VisualStudio.TeamFoundation.VersionControl .dll)也可以在vs 2016安裝文件夾中找到,例如C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ hdalyazr.nyu –

+0

路徑的最後部分不同(我懷疑它的機器依賴)對我來說,但它讓我到了正確的區域。我找到了一個N​​uGet軟件包Microsoft.TeamFoundation.ObjectModel,它包含了dll。它確實存在依賴.net 4.5的「問題」。這意味着我必須使用我需要的其他一些軟件包的早期版本。 –

相關問題