KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
My Visual Studio package requires the use of an EnvDTE.DTE variable, but it always gets back as null. After reading up on many hacks, all of them say to use the OnShellPropertyChange() method (IVsShellPropertyEvents), but sometimes it just never fires - as if my extension never finishes loading. I'm using VS2010 and checking against both VSSPROPID_Zombie and ShellInitialized - no work. :( Any ideas? This is the code I'm using: public int OnShellPropertyChange(int propid, object var) { if (propid == -9053 || (int) __VSSPROPID.VSSPROPID_Zombie == propid) { // -9053 = ShellInit try { if ((bool) var == false) { Dte = GetService(typeof (SDTE)) as DTE; Flow.Dte = Dte; var shellService = GetService(typeof (SVsShell)) as IVsShell; if (shellService != null) ErrorHandler.ThrowOnFailure(shellService.UnadviseShellPropertyChanges(_cookie)); _cookie = 0; } } catch { } } return VSConstants.S_OK; } EDIT: Under Experimental Instance, it works perfectly and takes about 5 seconds to initialize. However, once deployed as VSIX - it simply doesn't fire.
Tags (comma-separated)
Save Edits
Cancel