Gewusst wie: Erzwingen Sie zum Laden von VSPackages
normalerweise nur VSPackages geladen werden, wenn sich ihre zugehörigen Funktionen erforderlich ist, einen Vorgang abzuschließen. Unter bestimmten Umständen kann ein VSPackage muss jedoch VSPackages geladen werden soll, ein anderes erzwingen. Zum Beispiel könnte ein größeres VSPackage Leichtgewichtler Programmierung in einem VSPackage Kontext nicht als CMDUIContext verfügbar ist.
Sie können die LoadPackage-Methode verwenden, um zu erzwingen, dass VSPackages geladen werden soll.
So erzwingen Sie VSPackages zu ladende
Fügen Sie diesen Code in die Initialize VSPackages Methode ein, die ein anderes VSPackage erzwingt, um zu laden:
Dim shell As IVsShell = TryCast(GetService(GetType(SVsShell)), IVsShell) If shell Is Nothing Then Return End If Dim package As IVsPackage = Nothing Dim PackageToBeLoadedGuid As Guid = GetType(PackageToBeLoaded).GUID shell.LoadPackage(PackageToBeLoadedGuid, package)
IVsShell shell = GetService(typeof(SVsShell)) as IVsShell; if (shell == null) return; IVsPackage package = null; Guid PackageToBeLoadedGuid = new Guid(Microsoft.PackageToBeLoaded.GuidList.guidPackageToBeLoadedPkgString); shell.LoadPackage(ref PackageToBeLoadedGuid, out package);
Wenn ein VSPackage initialisiert wird, erzwingt dies PackageToBeLoaded , um zu laden.
Robuste Programmierung
Laden aktiviert sollte nicht für VSPackage-Kommunikation verwendet werden. Verwenden Sie stattdessen Dienste.