Freigeben über


Behandeln von Problemen mit VSPackages

              Gilt für: Visual Studio

In diesem Artikel werden häufige Probleme und Tipps zur Problembehandlung mit Ihren VSPackages vorgestellt.

Ein VSPackage verhindert, dass Visual Studio gestartet wird.

In diesem Szenario starten Sie Visual Studio im abgesicherten Modus, indem Sie an einer Eingabeaufforderung devenv.exe /safemode eingeben. Während dieses Prozesses werden keine VSPackages geladen, mit Ausnahme der IN Visual Studio enthaltenen VSPackages.

Ein VSPackage wird nicht geladen.

Führen Sie einen oder mehrere der folgenden Schritte aus, um dieses Problem zu beheben:

  • Stellen Sie sicher, dass Sie den Registrierungsstamm verwenden, in dem das VSPackage für die Ausführung registriert ist, in der Regel der experimentelle Registrierungsstamm. Weitere Informationen finden Sie unter Die experimentelle Instanz.

  • Wenn das VSPackage im Stammverzeichnis der experimentellen Registrierung ausgeführt werden soll, stellen Sie sicher, dass Sie die experimentelle Version von Visual Studio ausführen.

    Öffnen Sie zum Ausführen der experimentellen Version eine Visual Studio-Eingabeaufforderung, und geben Sie devenv /rootsuffix exp ein.

  • Überprüfen Sie Ihre VSPackage-Registrierungseinträge. Weitere Informationen finden Sie unter Registrieren von VSPackages und Verwalten von VSPackages.

  • Öffnen Sie das Ausgabefenster des instance von Visual Studio, bei dem das VSPackage nicht geladen werden kann. Informationen dazu, warum das VSPackage nicht geladen werden kann, werden möglicherweise in diesem Fenster angezeigt.

    Hinweis

    Wenn Sie die experimentelle Version von Visual Studio aus der integrierten Entwicklungsumgebung (IDE) von Visual Studio starten, überprüfen Sie das Ausgabefenster beider Versionen.

  • Untersuchen Sie das Aktivitätsprotokoll. Weitere Informationen finden Sie unter Vorgehensweise: Verwenden des Aktivitätsprotokolls.

  • Wenn Sie weitere Informationen zu Ausnahmen erhalten möchten, die von der IDE ausgelöst werden, wählen Sie Ausnahmen im Menü Debuggen aus, um die Ausnahmen zu aktivieren. Wählen Sie im Dialogfeld Ausnahmen die Ausnahmetypen aus, zu denen Sie weitere Informationen erhalten möchten.

Ein VSPackage ist nicht registriert.

Stellen Sie sicher, dass sich die VSPackage-Assembly an einem vertrauenswürdigen Speicherort befindet. RegPkg kann keine Assemblys an einem nicht vertrauenswürdigen oder teilweise vertrauenswürdigen Speicherort registrieren, z. B. an einer Netzwerkfreigabe in der .NET-Standardsicherheitskonfiguration. Obwohl eine Warnung angezeigt wird, wenn ein Benutzer ein Projekt an einem nicht vertrauenswürdigen Speicherort erstellt, kann das Kontrollkästchen Diese Meldung nicht erneut anzeigen verhindern, dass diese Warnung erneut auftritt.

Ein Befehl ist nicht sichtbar, oder er generiert einen Fehler, wenn er ausgewählt wird.

Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

  • Führen Sie die neuen oder geänderten Menübefehle und diese Befehle, die bereits in der IDE enthalten sind, zusammen, indem Sie devenv /rootsuffix Exp /setup an der Visual Studio-Eingabeaufforderung eingeben.

  • Stellen Sie sicher, dass Visual Studio UI.dll für Ihr VSPackage finden kann.

    1. Suchen Sie die CLSID des VSPackage im Abschnitt Pakete der Registrierung:

      HKLM\Software\Microsoft\Visual Studio\<version>\Packages

    2. Vergewissern Sie sich, dass der vom SatelliteDll-Unterschlüssel angegebene Pfad korrekt ist.

Ein VSPackage verhält sich unerwartet

Führen Sie einen oder mehrere der folgenden Schritte aus, um dieses Problem zu beheben:

  • Legen Sie Haltepunkte in Ihrem Code fest.

    Gute Ausgangspunkte für das Debuggen sind der Konstruktor und die Initialisierungsmethode. Sie können auch Haltepunkte in dem Bereich festlegen, den Sie auswerten möchten, z. B. einen Menübefehl. Um Haltepunkte zu aktivieren, müssen Sie unter dem Debugger ausführen.

    1. Wählen Sie im Menü Projekt die Option Eigenschaften aus.

    2. Wählen Sie im Dialogfeld Eigenschaftenseiten die Registerkarte Debuggen aus.

    3. Geben Sie im Feld Befehlszeilenargumente das Stammsuffix der Entwicklungsumgebung ein, auf die Ihr VSPackage ausgerichtet ist. Wenn Sie beispielsweise den experimentellen Build auswählen möchten, geben Sie /RootSuffix Exp ein.

    4. Wählen Sie im Menü Debuggen die Option Debuggen starten aus, oder drücken Sie F5.

      Hinweis

      Wenn Sie ein Projekt debuggen, erstellen oder laden Sie jetzt eine vorhandene instance Ihres Projekts.

  • Verwenden Sie das Aktivitätsprotokoll.

    Verfolgen Sie das VSPackage-Verhalten durch Schreiben von Informationen in das Aktivitätsprotokoll an wichtigen Punkten. Dieses Verfahren ist besonders nützlich, wenn Sie ein VSPackage in einer Einzelhandelsumgebung ausführen. Weitere Informationen finden Sie unter Vorgehensweise: Verwenden des Aktivitätsprotokolls.

  • Verwenden Sie öffentliche Symbole.

    Um die Lesbarkeit während des Debuggens zu verbessern, können Sie Symbole an den Debugger anfügen:

    1. Navigieren Sie im Menü Extras/Optionen zum Dialogfeld Debuggen/Symbole .
    2. Fügen Sie den Speicherort der Symboldatei (PDB) hinzu: https://msdl.microsoft.com/download/symbols.
    3. Um die Leistung zu verbessern, geben Sie einen Symbolcacheordner an, z. B. C:\symbols.

Ein VSPackage oder eine seiner Abhängigkeiten fehlt

  • Stellen Sie bei verwaltetem Code sicher, dass die Verweispfade korrekt sind.

    1. Wählen Sie im Menü Projekt die Option Eigenschaften aus.

    2. Wählen Sie im Dialogfeld Eigenschaftenseiten die Registerkarte Verweise aus, und stellen Sie sicher, dass alle Pfade korrekt sind. Alternativ können Sie den Objektbrowser verwenden, um nach den Objekten zu suchen, auf die verwiesen wird.

      Für verwalteten Code können Sie die Fuslogvw.exe (Assembly Binding Log Viewer) verwenden, um die Details fehlerhafter Assemblyladevorgänge anzuzeigen.

  • Suchen Sie für nicht verwalteten Code die CLSID des VSPackage im Visual Studio CLSID-Registrierungsknoten:

    HKLM\Software\Microsoft\Visual Studio\<version>\CLSID

    Stellen Sie sicher, dass der Eintrag InprocServer32 den richtigen Pfad der VSPackage-DLL aufweist.

References