VS2015 VersionControlServer

时间:2016-01-08 09:26:49

标签: version-control visual-studio-2015 vspackage

我不得不升级到Visual Studio 2015,目前我的VSPackage存在问题。我需要一个VersionContralServer对象,但每次调试时,DTE都为空。

 DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE2));
 VersionControlExt versionControlExt = dte.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt;
 VersionControlExplorerExt versionControlExplorerExt = versionControlExt.Explorer;
 VersionControlServer version = versionControlExplorerExt.Workspace.VersionControlServer;

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您对Package.GetGlobalService()的调用存在轻微错误。

DTE2 dte =(DTE2)Package.GetGlobalService(typeof( SDTE ));

在幕后,所有GetGlobalService调用都在调用IOleServiceProvider.QueryService方法,该函数需要一个接口guid和一个服务guid。 typeof(DTE2),返回DTE2接口的接口guid。

您可能看到一些样本未正确使用typeof(DTE)来返回服务guid。但这只能起作用,因为DTE服务guid id和DTE接口guid id恰好相同。但一般来说,您应该始终使用服务guid id。