2017-05-12 130 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的“问题”。这意味着我必须使用我需要的其他一些软件包的早期版本。 –

相关问题