Mein Visual Studio-Paket erfordert die Verwendung einer EnvDTE.DTE -Variable, aber es wird immer als Null zurückgegeben. Nach dem Lesen vieler Hacks sagen alle von ihnen, dass sie die OnShellPropertyChange () -Methode (IVsShellPropertyEvents) verwenden sollen, aber manchmal werden sie nie ausgelöst - als ob meine Erweiterung nie fertig geladen wäre.
Ich verwende VS2010 und überprüfe gegen VSSPROPID_Zombie und ShellInitialized - keine Arbeit. : (
Irgendwelche Ideen? Dies ist der Code, den ich verwende:
%Vor%BEARBEITEN: Unter Experimentelle Instanz funktioniert es perfekt und benötigt etwa 5 Sekunden zum Initialisieren. Sobald es jedoch als VSIX bereitgestellt wird, wird es einfach nicht ausgelöst.
Ich sehe hier ein paar Probleme:
Wenn Sie eine MEF-Komponente haben, ist der einfachste Weg, zu einem DTE
-Objekt zu gelangen, wie folgt
Fügen Sie zuerst einen Verweis auf Microsoft.VisualStudio.Shell.Immutable.10 hinzu. Fügen Sie dann einen MEF-Import für SVsServiceProvider
hinzu. Dieses Objekt verfügt über eine GetService-Methode, die für DTE
Tags und Links .net c# visual-studio-2010 visual-studio vsix