Freigeben über


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
Entwickeln 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 DeploymentPlanExecutor-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 Verschiebungszeitpunkt 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 über Erweiterungspunkte: Informieren Sie sich über die Basisklassen für die Implementierung von Mitwirkenden an der Erstellung und Bereitstellung. BuildContributor

DeploymentContributor
Beispielmitwirkende erstellen: Lernen Sie die erforderlichen Schritte zum Erstellen eines Mitwirkenden an der Erstellung oder Bereitstellung kennen. In diesen exemplarischen Vorgehensweisen lernen Sie Folgendes:

– Erstellen eines Build-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: Erweitern von Datenbankprojekten zum Generieren von Modellstatistiken

Exemplarische Vorgehensweise: Erweitern der Bereitstellung von Datenbankprojekten zum Ändern des Bereitstellungsplans

Exemplarische Vorgehensweise: Erweitern der Bereitstellung eines Datenbankprojekts zum Analysieren des Bereitstellungsplans

Weitere Informationen

Definieren benutzerdefinierter Bedingungen für SQL-Komponententests