Freigeben über


Behandeln von Problemen mit VSPackages

Gilt für: Visual Studio

In diesem Artikel werden allgemeine Probleme und Tipps zur Problembehandlung mit Ihren VSPackages vorgestellt.

Ein VSPackage verhindert, dass Visual Studio gestartet wird.

Starten Sie in diesem Szenario Visual Studio im abgesicherten Modus, indem Sie an einer Eingabeaufforderung devenv.exe /safemode eingeben. Während dieses Vorgangs werden keine VSPackages geladen, mit Ausnahme der VSPackages, die in Visual Studio enthalten sind.

Ein VSPackage wird nicht geladen.

Um dieses Problem zu beheben, probieren Sie einen oder mehrere der folgenden Schritte aus:

  • 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-Element im experimentellen Registrierungsstamm ausgeführt werden soll, stellen Sie sicher, dass Sie die experimentelle Version von Visual Studio ausführen.

    Um die experimentelle Version auszuführen, öffnen Sie eine Visual Studio-Eingabeaufforderung, und geben Sie dann 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 der Instanz von Visual Studio, die das VSPackage-Element nicht laden kann. Informationen dazu, warum das Laden von VSPackage nicht ausgeführt wird, werden möglicherweise in diesem Fenster angezeigt.

    Notiz

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

  • Überprüfen Sie das Aktivitätsprotokoll. Weitere Informationen finden Sie unter Hilfe & Anleitung: Nutzen des Aktivitätsprotokolls.

  • Wenn Sie weitere Informationen zu Ausnahmen wünschen, 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 Arten von Ausnahmen aus, zu denen Sie weitere Informationen benötigen.

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. eine Netzwerkfreigabe in der standardmäßigen .NET-Sicherheitskonfiguration. 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 generiert einen Fehler, wenn er ausgewählt ist.

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 sich bereits in der IDE befindet, 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. Stellen Sie sicher, dass der vom SatelliteDll-Unterschlüssel angegebene Pfad korrekt ist.

Ein VSPackage verhält sich unerwartet.

Um dieses Problem zu beheben, probieren Sie einen oder mehrere der folgenden Schritte aus:

  • Legen Sie im Code Haltepunkte 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 ausgeführt werden.

    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. Um beispielsweise den experimentellen Build auszuwählen, geben Sie Folgendes ein: /RootSuffix Exp.

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

      Notiz

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

  • Verwenden Sie das Aktivitätsprotokoll.

    Verfolgen Sie das VSPackage-Verhalten, indem Sie Informationen in das Aktivitätsprotokoll an wichtigen Punkten schreiben. Diese Technik ist besonders nützlich, wenn Sie ein VSPackage in einer Einzelhandelsumgebung ausführen. Weitere Informationen finden Sie unter Hilfe & Anleitung: Nutzen des Aktivitätsprotokolls.

  • Verwenden Sie öffentliche Symbole.

    Um die Lesbarkeit beim Debuggen zu verbessern, können Sie dem Debugger Symbole anfügen:

    1. Navigieren Sie im Menü "Extras/Optionen " zum Dialogfeld "Debuggen/Symbole ".
    2. Speicherort der Symboldatei (PDB) hinzufügen: 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 für verwalteten Code sicher, dass die Referenzpfade 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 Objektkatalog verwenden, um nach den referenzierten Objekten zu suchen.

      Für verwalteten Code können Sie den Fuslogvw.exe (Assembly Binding Log Viewer) verwenden, um die Details der fehlgeschlagenen 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