Delen via


Databasebuild en -implementatie aanpassen met behulp van inzenders voor bouwen en implementeren

Visual Studio biedt uitbreidbaarheidspunten die u kunt gebruiken om het gedrag van de build- en implementatieacties voor databaseprojecten te wijzigen.

Beschikbare uitbreidbaarheidspunten

U kunt een extensie maken voor de uitbreidbaarheidspunten, zoals wordt weergegeven in de volgende tabel:

Handeling Bijdragertype Opmerkingen
Bouwen BuildContributor Dit type extensie wordt uitgevoerd wanneer het SQL-project wordt gebouwd nadat het projectmodel volledig is gevalideerd. De buildbijdrager heeft toegang tot het voltooide model, naast alle eigenschappen van de build-taak en eventuele aangepaste argumenten.
Deploy Wijziging van Implementatieplan Dit type extensie wordt uitgevoerd wanneer het SQL-project wordt geïmplementeerd, als onderdeel van de implementatiepijplijn, nadat het implementatieplan is gegenereerd, maar voordat het implementatieplan wordt uitgevoerd. U kunt een DeploymentPlanModifier gebruiken om het implementatieplan te wijzigen door stappen toe te voegen of te verwijderen. Inzenders voor implementatie hebben toegang tot het implementatieplan, de vergelijkingsresultaten en de bron- en doelmodellen.
Deploy UitvoerderVanImplementatieplan Dit type extensie wordt uitgevoerd wanneer het implementatieplan wordt uitgevoerd en biedt alleen-lezentoegang tot het implementatieplan. De DeploymentPlanExecutor voert acties uit op basis van het implementatieplan.

Ondersteunde uitbreidbaarheidsscenario's

U kunt bijdragers voor builds of deployments implementeren om de volgende voorbeeldscenario's in te schakelen:

  • Schemadocumentatie genereren tijdens een projectbuild : ter ondersteuning van dit scenario implementeert u een BuildContributor en overschrijft u de OnExecute-methode om de schemadocumentatie te genereren. U kunt een doelbestand maken dat standaardargumenten definieert die bepalen of de extensie wordt uitgevoerd en om de naam van het uitvoerbestand op te geven.

  • Genereer een verschilrapport wanneer een SQL-project wordt geïmplementeerd . Ter ondersteuning van dit scenario implementeert u een DeploymentPlanExecutor die het XML-bestand genereert wanneer het SQL-project wordt geïmplementeerd.

  • Wijzig het implementatieplan om te wijzigen wanneer er gegevensbeweging plaatsvindt : ter ondersteuning van dit scenario implementeert u een DeploymentPlanModifier en voert u het implementatieplan uit. Voor elke SqlTableMigrationStep in dat plan bekijkt u het vergelijkingsresultaat om te bepalen of die stap moet worden uitgevoerd of overgeslagen.

  • Kopieer bestanden naar de gegenereerde dacpac wanneer een SQL-project wordt geïmplementeerd : ter ondersteuning van dit scenario implementeert u een inzender voor implementatie en overschrijft u de onEstablishDeploymentConfiguration-methode om op te geven welke bestanden zijn gemarkeerd als DeploymentExtensionConfiguration door het projectsysteem. Deze bestanden moeten worden gekopieerd naar de uitvoermap en worden toegevoegd in de gegenereerde dacpac. U kunt de inzender ook wijzigen om meerdere bestanden samen te voegen in één nieuw bestand dat wordt gekopieerd naar de uitvoermap en wordt toegevoegd aan het implementatiemanifest. Tijdens de implementatie kunt u de methode OnApplyDeploymentConfiguration implementeren om deze bestanden uit de dacpac te extraheren en ze voor te bereiden voor gebruik in de OnExecute-methode.

Daarnaast kunt u aangepaste paren naam-/waardeargumenten beschikbaar stellen van uw inzender die naar het databaseprojectbestand worden geschreven. U kunt deze argumenten gebruiken om de inzender in staat te stellen informatie te extraheren uit MSBuild of om de eindgebruiker van uw inzender in staat te stellen het gedrag aan te passen. U kunt bijvoorbeeld toestaan dat gebruikers de naam van een invoer- of uitvoerbestand opgeven.

Algemene taken

Opdracht Ondersteunende inhoud
Meer informatie over de uitbreidbaarheidspunten: U kunt lezen over de basisklassen die u gebruikt om inzenders voor build- en implementatie te implementeren. BuildContributor

DeploymentContributor
Voorbeeldbijdragers maken: Meer informatie over de stappen die nodig zijn om een inzender voor een build of implementatie te maken. Als u deze stappen volgt, gaat u als volgt te werk:

- Maak een buildbijdrager waarmee een rapport wordt gegenereerd waarin alle elementen in het model worden vermeld.
- Maak een inzender voor implementatie die het implementatieplan wijzigt voordat het wordt uitgevoerd.
- Maak een implementatiebijdrager die een implementatierapport genereert wanneer u een SQL-project implementeert.

U kunt al uw inzenders in één assembly of tussen verschillende assembly's maken, afhankelijk van de wijze waarop de inzenders naar uw team moeten worden gedistribueerd.
nl-NL: Stapsgewijze handleiding: Het uitbreiden van de databaseprojectbuild om modelstatistieken te genereren

Overzicht: Databaseprojectimplementatie uitbreiden om het implementatieplan te wijzigen

Overzicht: Databaseprojectimplementatie uitbreiden om het implementatieplan te analyseren