如何获取VS包项目中的DTE对象实例?

Vio*_*ffe 3 c# visual-studio-addins visual-studio-2012 visual-studio-package

如何在VS包项目中获取DTE实例?它在插件项目中是直接的,因为application它作为参数传递给onConnection方法,但不清楚如何将它放入包中。

Ser*_*sov 5

从您的主 Package 类:

EnvDTE80.DTE2 dte = this.GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SDTE)) as EnvDTE80.DTE2;
Run Code Online (Sandbox Code Playgroud)

  • 如果您不在主包中,则可以使用:`EnvDTE.DTE dte = Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(Microsoft.VisualStudio.Shell.Interop.SDTE)) as EnvDTE.DTE;` (或者如果您需要,请使用 EnvDTE80.DTE2。 (4认同)