Datenbank-Build und -Bereitstellung anpassen durch Verwendung von Erstellungs- und Bereitstellungs-Contributors

 

Visual Studio bietet Erweiterungspunkte, mit deren Hilfe Sie das Verhalten der Erstellungs- und Bereitstellungsaktionen für Datenbankprojekte ändern können.

Verfügbare Erweiterungspunkte

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

Aktion

Contributor-Typ

Hinweise

Erstellen

BuildContributor

Diese Art von Erweiterung wird ausgeführt, wenn das SQL-Projekt nach vollständiger Überprüfung des Projektmodells erstellt wird.Der Erstellungs-Contributor hat Zugriff auf das fertige Modell sowie auf alle Eigenschaften der Erstellungsaufgabe und auf sämtliche benutzerdefinierte Argumente.

Bereitstellen

DeploymentPlanModifier

Diese Art von Erweiterung wird ausgeführt, wenn das SQL-Projekt nach der Generierung (aber noch vor der Ausführung) des Bereitstellungsplans als Teil der Bereitstellungspipeline bereitgestellt wird.Mithilfe eines DeploymentPlanModifier-Elements können Sie dem Bereitstellungsplan Schritte hinzufügen oder Schritte daraus entfernen.Bereitstellungs-Contributors haben Zugriff auf den Bereitstellungsplan, auf die Vergleichsergebnisse sowie auf das Quell- und Zielmodell.

Bereitstellen

DeploymentPlanExecutor

Diese Art von Erweiterung wird bei der Ausführung des Bereitstellungsplans ausgeführt und bietet schreibgeschützten Zugriff auf den Bereitstellungsplan.Die durch das DeploymentPlanExectutor-Element ausgeführten Aktionen basieren auf dem Bereitstellungsplan.

Unterstützte Erweiterungsszenarien

Sie können Erstellungs- oder Bereitstellungs-Contributors implementieren, um folgende Beispielszenarien zu ermöglichen:

  • Generieren einer Schemadokumentation im Rahmen der Projekterstellung: Für dieses Szenario wird ein Element vom Typ BuildContributor implementiert und die OnExecute-Methode überschrieben, um die Schemadokumentation zu generieren.Sie können eine Zieldatei mit Definitionen von Standardargumenten erstellen, die steuern, ob die Erweiterung ausgeführt wird. Außerdem können Sie den Namen der Ausgabedatei angeben.

  • Generieren eines Unterschiedeberichts beim Bereitstellen eines SQL-Projekts: Für dieses Szenario wird ein Element vom Typ DeploymentPlanExecutor implementiert, durch das die XML-Datei beim Bereitstellen des SQL-Projekts generiert wird.

  • Ändern des Bereitstellungsplans, um den Bewegungszeitpunkt von Daten zu ändern: Für dieses Szenario wird ein Element vom Typ DeploymentPlanModifier implementiert und der Bereitstellungsplan durchlaufen.Für jedes im Plan enthaltene Element vom Typ SqlTableMigrationStep wird das Vergleichsergebnis untersucht, um zu ermitteln, ob der Schritt ausgeführt oder übersprungen werden soll.

  • Kopieren von Dateien in das generierte DACPAC-Paket beim Bereitstellen eines SQL-Projekts: Für dieses Szenario wird ein Bereitstellungs-Contributor implementiert und die OnEstablishDeploymentConfiguration-Methode überschrieben, um die Dateien anzugeben, die vom Projektsystem als DeploymentExtensionConfiguration markiert wurden.Diese Dateien sollen in den Ausgabeordner kopiert und dem generierten DACPAC-Paket hinzugefügt werden.Sie können den Contributor auch ändern, um mehrere Dateien zu einer neuen Datei zusammenzufassen, die dann in den Ausgabeordner kopiert und dem Bereitstellungsmanifest hinzugefügt wird.Im Rahmen der Bereitstellung können Sie die OnApplyDeploymentConfiguration-Methode implementieren, um die Dateien aus dem DACPAC-Paket zu extrahieren und sie für die Verwendung in der OnExecute-Methode vorbereiten.

Darüber hinaus können Sie angepasste Name/Wert-Argumentpaare aus Ihrem Contributor verfügbar machen, die in die Datenbankprojektdatei geschrieben werden.Mithilfe dieser Argumente können Sie dem Contributor das Extrahieren von Informationen aus MSBuild oder dem Endbenutzer des Contributors das Anpassen des Verhaltens ermöglichen.So können Sie den Benutzern beispielsweise die Angabe des Namens einer Ein- oder Ausgabedatei ermöglichen.

Allgemeine Aufgaben

Allgemeine Aufgaben

Hilfreiche Themen

Weitere Informationen zu den Erweiterungspunkten: Informieren Sie sich über die Basisklassen für die Implementierung von Erstellungs- und Bereitstellungs-Contributors.

BuildContributor

DeploymentContributor

Erstellen von Beispiel-Contributors: Lernen Sie die erforderlichen Schritte zum Erstellen eines Erstellungs- oder Bereitstellungs-Contributors.In diesen exemplarischen Vorgehensweisen lernen Sie Folgendes:

  • Erstellen eines Erstellungs-Contributors zum Generieren eines Berichts mit einer Liste aller im Modell enthaltenen Elemente

  • Erstellen eines Bereitstellungs-Contributors zum Ändern des Bereitstellungsplans vor dessen Ausführung

  • Erstellen eines Bereitstellungs-Contributors zum Generieren eines Bereitstellungsberichts beim Bereitstellen eines SQL-Projekts

Contributors können alle in einer einzelnen Assembly oder in mehreren Assemblys erstellt werden – je nachdem, wie Sie die Contributors auf Ihr Team verteilen möchten.

Exemplarische Vorgehensweise: Datenbankprojekt erweitern, um Modellstatistiken zu generieren

Exemplarische Vorgehensweise: Bereitstellung des Datenbankprojekts erweitern, um den Bereitstellungsplan zu bearbeiten

Exemplarische Vorgehensweise: Bereitstellung des Datenbankprojekts erweitern, um den Bereitstellungsplan zu analysieren

Siehe auch

Definieren benutzerdefinierter Bedingungen für SQL-Komponententests