Freigeben über


Problembehandlung bei Funktionserweiterungen

Sie können eigene Funktionserweiterungen erstellen, z. B. benutzerdefinierte Codeanalyseregeln, Bedingungen für Datenbankkomponententests, Daten-Generatoren, Umgestaltungstypen, Buildcontributors und Bereitstellungscontributors. Wenn Sie diese Funktionserweiterungen installieren, treten möglicherweise Probleme auf, die verhindern, dass die Erweiterung erfolgreich geladen wird. In diesem Thema werden die am häufigsten auftretenden Probleme sowie die Schritte erläutert, die Sie ausführen können, um diese zu beheben. Weitere Informationen zum Installieren und Registrieren von Funktionserweiterungen finden Sie unter Gewusst wie: Registrieren und Verwalten von Funktionserweiterungen.

Erster Schritte beim Problemen mit dem Laden einer Funktionserweiterung

Nachdem Sie die Funktionserweiterung installiert und registriert haben, müssen Sie Visual Studio neu starten. Nachdem Sie Visual Studio neu gestartet haben, sollten Sie als Erstes die Fehlerliste anzeigen. Wenn eine oder mehrere Erweiterungen nicht geladen werden konnten, enthält die Fehlerliste möglicherweise entsprechende Einträge. Klicken Sie im Menü Ansicht auf Fehlerliste. Wenn beispielsweise ein Fehler wie der folgende angezeigt wird, wurde die Erweiterung nicht ordnungsgemäß geladen:

Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.

In einigen Situationen, z. B. wenn die Datei .extensions.xml nicht gefunden wurde, wird die Erweiterung nicht geladen, es wird jedoch auch kein Fehler angezeigt.

Ermitteln der Ursache für Fehler beim Laden von Erweiterungen

Fehler beim Laden von Erweiterungen können u. a. aus folgenden Gründen auftreten:

  • Die Erweiterungsdatei enthält einen oder mehrere Fehler.

  • Die Erweiterungsassembly ist nicht signiert.

  • Die Datei extensions.xml wurde nicht gefunden.

  • Die Erweiterungsassembly wurde nicht gefunden.

  • Im Code der Erweiterung werden nicht die richtigen Klassen erweitert.

  • Klassen oder Member in der Erweiterung verfügen nicht über die richtigen Attribute.

Die Erweiterungsdatei enthält einen oder mehrere Fehler.

Der häufigste Grund, warum Fehler beim Laden einer Erweiterung auftreten, ist das Vorliegen eines oder mehrerer nachfolgend genannter Fehler in der Datei Extensions.XML:

Die Erweiterungsassembly ist nicht signiert.

Wenn die Erweiterungsassembly nicht signiert wird, kann sie nicht von Visual Studio geladen werden. Um eine Erweiterungsassembly zu signieren, führen Sie folgende Schritte aus:

So signieren und erstellen Sie die Assembly

  1. Öffnen Sie die Projektmappe, die das Erweiterungsprojekt enthält.

  2. Klicken Sie im Menü Projekt auf Eigenschaften von Erweiterungsprojekt. Erweiterungsprojekt steht dabei für den Namen des Projekts, das die zu signierende Funktionserweiterung enthält.

  3. Klicken Sie auf die Registerkarte Signierung.

  4. Klicken Sie auf Assembly signieren.

  5. Klicken Sie im Feld Schlüsseldatei mit starkem Namen auswählen auf <Neu>.

  6. Geben Sie im Dialogfeld Schlüssel für einen starken Namen erstellen unter Schlüsseldateiname den Namen MyRefKey ein.

  7. (optional) Sie können für die Schlüsseldatei mit starkem Namen ein Kennwort angeben.

  8. Klicken Sie auf OK.

  9. Klicken Sie im Menü Datei auf Alle speichern.

  10. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Danach müssen Sie die Assembly installieren und registrieren, damit sie geladen wird, wenn Sie Datenbankprojekte bereitstellen.

Die Datei Extensions.XML wurde nicht gefunden

Wenn Sie keine XML-Datei bereitgestellt haben, um die Erweiterung für Visual Studio zu registrieren, wird die Erweiterung nicht geladen. Normalerweise kopieren Sie die Datei MeineAssembly.Extensions.XML in das Verzeichnis %Programme%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions; MeineAssembly steht dabei für den Namen der Erweiterung.

Tipp

Es empfiehlt sich, die XML-Dateien nicht direkt in das Verzeichnis [Programme]\Microsoft Visual Studio 10.0\VSTSDB\Extensions zu kopieren. Wenn Sie stattdessen einen Unterordner verwenden, vermeiden Sie versehentliche Änderungen an den anderen Dateien, die mit Visual Studio bereitgestellt werden.

Weitere Informationen zum Erstellen einer Extensions.XML-Datei finden Sie unter Gewusst wie: Registrieren und Verwalten von Funktionserweiterungen.

Die Erweiterungsassembly wurde nicht gefunden

Wenn Sie die Erweiterungsassembly nicht in den Ordner Erweiterungen kopiert haben, wird die Erweiterung nicht geladen. Normalerweise kopieren Sie die Datei MeineAssembly.dll und die Datei MeineAssembly.pdb in das Verzeichnis %Programme%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions; MeineAssembly steht dabei für den Namen der Erweiterung.

Tipp

Es empfiehlt sich, die XML-Dateien nicht direkt in das Verzeichnis [Programme]\Microsoft Visual Studio 10.0\VSTSDB\Extensions zu kopieren. Wenn Sie stattdessen einen Unterordner verwenden, vermeiden Sie versehentliche Änderungen an den anderen Dateien, die mit Visual Studio Premium bereitgestellt werden.

Im Code der Erweiterung werden nicht die richtigen Klassen erweitert

Die primäre Klasse erweitert für jeden Typ der Funktionserweiterung eine bestimmte Basisklasse. Wenn Sie nicht von der richtigen Basisklasse erben, funktioniert die Erweiterung nicht ordnungsgemäß. Weitere Informationen finden Sie in der entsprechenden exemplarischen Vorgehensweise.

Klassen oder Member in der Erweiterung verfügen nicht über die richtigen Attribute

Die Klasse muss für jeden Typ der Funktionserweiterung über ein Attribut verfügen, das den Typ des Datenbankschema-Anbieters deklariert, mit dem die Erweiterung kompatibel ist. Außerdem erfordern einige Erweiterungen zusätzliche Attribute in einer oder mehreren Klassenmethoden. Weitere Informationen finden Sie in der entsprechenden exemplarischen Vorgehensweise.

Siehe auch

Konzepte

Erstellen benutzerdefinierter Typen oder Regeln für die Datenbankumgestaltung

Erstellen und Registrieren zusätzlicher Regeln für die Datenbankcodeanalyse

Generieren spezialisierter Testdaten mit einem benutzerdefinierten Daten-Generator

Definieren benutzerdefinierter Bedingungen für Datenbankkomponententests

Weitere Ressourcen

Anpassen von Datenbankbuild und -bereitstellung mithilfe von Build- und Bereitstellungsmitwirkenden