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

Visual Studio stellt Erweiterungspunkte bereit, mit denen Sie das Verhalten der Build- und Bereitstellungsaktionen für Datenbankprojekte ändern können. Diese Erweiterungspunkte werden so definiert, dass sie für jede Implementierung eines Datenbankschema-Anbieters übernommen werden können.

Verfügbare Erweiterungspunkte

Sie können eine Erweiterung für die Erweiterungspunkte erstellen, wie in der folgenden Tabelle veranschaulicht:

Aktion

Contributortyp

Hinweise

Build

BuildContributor

Dieser Erweiterungstyp wird ausgeführt, wenn das Datenbankprojekt erstellt wird, nachdem das Projektmodell vollständig überprüft wurde. Der Buildcontributor kann neben allen Eigenschaften der Buildaufgabe und allen benutzerdefinierten Argumenten auch auf das abgeschlossene Modell zugreifen.

Bereitstellung

DeploymentPlanModifier

Dieser Erweiterungstyp wird ausgeführt, wenn das Datenbankprojekt im Rahmen der Bereitstellungspipeline nach Generieren des Bereitstellungsplans, jedoch vor Ausführung des Plans bereitgestellt wird. Sie können den Bereitstellungsplan durch das Hinzufügen oder Entfernen von Schritten mithilfe eines DeploymentPlanModifier ändern. Bereitstellungscontributors können auf den Bereitstellungsplan, auf die Vergleichsergebnisse sowie auf die Quell- und Zielmodelle zugreifen.

Bereitstellung

DeploymentPlanExecutor

Dieser Erweiterungstyp wird ausgeführt, wenn der Bereitstellungsplan ausgeführt wird, und bietet schreibgeschützten Zugriff auf den Bereitstellungsplan. Der DeploymentPlanExectutor führt Aktionen auf Grundlage des Bereitstellungsplans aus.

Unterstützte Szenarios zur Erweiterbarkeit

Sie können Contributors für Build und Bereitstellung implementieren, um die folgenden Beispielszenarios zu aktivieren:

  • Generieren von Schemadokumentation während eines Projektbuilds
    Um dieses Szenario zu unterstützen, implementieren Sie einen BuildContributor und überschreiben die OnExecute-Methode, um die Schemadokumentation zu generieren. Sie können die OnPopulateArguments-Methode überschreiben, um Standardargumente verfügbar zu machen, die eine Ausführung der Erweiterung steuern, und um den Namen der Ausgabedatei anzugeben.

  • Generieren eines Unterschiedsberichts beim Bereitstellen eines Datenbankprojekts
    Um dieses Szenario zu unterstützen, implementieren Sie einen DeploymentPlanExecutor, der die XML-Datei generiert, wenn das Datenbankprojekt bereitgestellt wird.

  • Bearbeiten des Bereitstellungsplans zur Änderung bei Datenbewegungen
    Um dieses Szenario zu unterstützen, implementieren Sie einen DeploymentPlanModifier und durchlaufen das Bereitstellungsszenario. Für jeden SqlTableMigrationStep in diesem Plan untersuchen Sie das Vergleichsergebnis, um zu bestimmen, ob dieser Schritt ausgeführt oder übersprungen werden soll.

  • Kopieren von Dateien in den Buildausgabeordner beim Bereitstellen eines Datenbankprojekts
    Um dieses Szenario zu unterstützen, implementieren Sie einen Bereitstellungscontributor und überschreiben die OnEstablishDeploymentConfiguration-Methode. So geben Sie an, welche Dateien, die (vom Projektsystem) als DeploymentConfigurationExtension gekennzeichnet wurden, in den Ausgabeordner kopiert werden sollen. Sie können auch den Contributor bearbeiten, um mehrere Dateien in einer neuen Datei zusammenzuführen, die in den Ausgabeordner kopiert und dem Bereitstellungsmanifest hinzugefügt wird.

Außerdem können Sie benutzerdefinierte Paare von Name-Wert-Argumenten aus dem Contributor verfügbar machen, die in die Datenbankprojektdatei geschrieben werden. Mit diesen Argumenten können Sie den Contributor zum Extrahieren von Informationen aus MSBuild aktivieren, oder Sie können das Anpassen des Verhaltens durch den Endbenutzer des Contributors aktivieren. Beispielsweise können Sie Benutzern ermöglichen, den Namen einer Eingabe- oder Ausgabedatei anzugeben.

Allgemeine Aufgaben

Allgemeine Aufgaben

Unterstützender Inhalt

Weitere Informationen über die Erweiterungspunkte: Hier erhalten Sie Informationen über die Basisklassen, mit denen Sie Contributors für Build und Bereitstellung implementieren.

Beispielcontributors erstellen: Hier lernen Sie die Schritte kennen, die erforderlich sind, um einen Build- oder Bereitstellungscontributor zu erstellen. Im Rahmen dieser exemplarischen Vorgehensweisen können Sie Folgendes tun:

  • Erstellen Sie einen Buildcontributor, der einen Bericht generiert, in dem alle Elemente im Modell aufgeführt sind.

  • Erstellen Sie einen Bereitstellungscontributor, der den Bereitstellungsplan vor der Ausführung ändert.

  • Erstellen Sie einen Bereitstellungscontributor, der einen Bereitstellungsbericht erzeugt, wenn Sie ein Datenbankprojekt bereitstellen.

Alle Contributors können, je nachdem, wie die Contributors an das Team verteilt werden sollen, in einer einzelnen Assembly oder in mehreren Assemblys erstellt werden.

Contributors für Build und Bereitstellung an Teammitglieder verteilen: Nachdem Sie sich vergewissert haben, dass die Contributors ordnungsgemäß funktionieren, können Sie diese an das Team verteilen. Sie können jedes Teammitglied bitten, die Funktionserweiterung manuell zu installieren und zu registrieren, Sie können dafür jedoch auch ein einfaches Installationsprogramm erstellen.

Ähnliche Szenarien

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

Siehe auch

Konzepte

Erweitern der Datenbankfunktionen von Visual Studio

Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung

Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung