Xaml 在工具窗口构造函数中获取DTE

Xaml 在工具窗口构造函数中获取DTE,xaml,envdte,vspackage,Xaml,Envdte,Vspackage,我构建了一个带有工具窗口的VSPackage,但遇到了一个问题。如果用户在VS已经运行时打开工具窗口,我点击MyToolPackage类并能够使用 (DTE)GetService(typeof(DTE)); 当用户关闭VS并再次启动它时,工具窗口已经打开,我没有点击MyToolPackage,而是点击MyToolWindow类,其中GetService总是返回null 有没有办法从MyToolWindow类或我选择的其他类中获取DTE对象 提前感谢。在包类中公开一个方法:更好的是,不要尝试从工

我构建了一个带有工具窗口的VSPackage,但遇到了一个问题。如果用户在VS已经运行时打开工具窗口,我点击MyToolPackage类并能够使用

(DTE)GetService(typeof(DTE));
当用户关闭VS并再次启动它时,工具窗口已经打开,我没有点击MyToolPackage,而是点击MyToolWindow类,其中GetService总是返回null

有没有办法从MyToolWindow类或我选择的其他类中获取DTE对象


提前感谢。

在包类中公开一个方法:

更好的是,不要尝试从工具窗口检索任何服务。该窗口尚未定位,因此无法检索和查询各种服务

您可以尝试使用Package.GetGlobalService,但正确的方法是将必要的代码放入ToolWindowPane.OnToolWindowCreated的重写中。此函数在toolwindow正确定位后调用

真诚地