Condividi tramite


Personalizzare compilazione e distribuzione del database tramite collaboratori alla compilazione e distribuzione

In Visual Studio sono disponibili punti di estensibilità che è possibile utilizzare per modificare il comportamento delle operazioni di compilazione e distribuzione per i progetti di database. Questi punti di estensione sono definiti in modo da poter essere applicati a qualsiasi implementazione del provider dello schema di database (DSP).

Punti di estensibilità disponibili

È possibile creare un'estensione per i punti di estensibilità, come illustrato nella tabella seguente:

Azione

Tipo di collaboratore

Note

Compilazione

BuildContributor

Questo tipo di estensione viene eseguito quando si compila il progetto di database dopo che il modello di progetto è stato completamente convalidato. Il collaboratore alla compilazione può accedere al modello completato, oltre che a tutte le proprietà dell'attività di compilazione e a qualsiasi argomento personalizzato.

Distribuzione

DeploymentPlanModifier

Questo tipo di estensione viene eseguito quando si distribuisce il progetto di database, come parte della pipeline di distribuzione, dopo la generazione del piano di distribuzione ma prima che quest'ultimo venga eseguito. È possibile utilizzare un tipo di collaboratore DeploymentPlanModifier per modificare il piano di distribuzione aggiungendo o rimuovendo passaggi. I collaboratori alla distribuzione possono accedere al piano di distribuzione, ai risultati del confronto e ai modelli di origine e di destinazione.

Distribuzione

DeploymentPlanExecutor

Questo tipo di estensione viene eseguito quando si esegue il piano di distribuzione e fornisce l'accesso in sola lettura al piano di distribuzione. Il tipo di collaboratore DeploymentPlanExectutor esegue azioni basate sul piano di distribuzione.

Scenari di estensibilità supportati

È possibile implementare collaboratori alla compilazione o distribuzione per abilitare gli scenari di esempio seguenti:

  • Generare documentazione dello schema durante la compilazione di un progetto
    Per supportare questo scenario, è necessario implementare un BuildContributor ed eseguire l'override del metodo OnExecute per generare la documentazione dello schema. È possibile eseguire l'override del metodo OnPopulateArguments per esporre gli argomenti predefiniti che controllano se l'estensione viene eseguita e per specificare il nome del file di output.

  • Generare un rapporto sulle differenze quando viene distribuito un progetto di database
    Per supportare questo scenario, è necessario implementare un DeploymentPlanExecutor che genera il file XML quando viene distribuito il progetto di database.

  • Modificare il piano di distribuzione per modificare quando vengono spostati i dati
    Per supportare questo scenario, è necessario implementare un DeploymentPlanModifier e scorrere la riproduzione della distribuzione. Per ogni SqlTableMigrationStep in tale piano è necessario esaminare il risultato del confronto per determinare se quel passaggio deve essere eseguito o ignorato.

  • Copiare i file nella cartella dell'output di compilazione quando un progetto di database viene distribuito
    Per supportare questo scenario, è necessario implementare un collaboratore alla distribuzione ed eseguire l'override del metodo OnEstablishDeploymentConfiguration per specificare quali file contrassegnati come DeploymentConfigurationExtension (dal sistema del progetto) devono essere copiati nella cartella di output. È inoltre possibile modificare il collaboratore per unire più file in un nuovo file che viene copiato nella cartella di output e aggiunto al manifesto della distribuzione.

È possibile, inoltre, esporre coppie personalizzate di argomenti nome/valore del collaboratore scritti nel file progetto di database. È possibile utilizzare questi argomenti per consentire al collaboratore di estrarre informazioni da MSBuild o consentire all'utente finale del collaboratore di personalizzare il comportamento. Ad esempio, è possibile consentire agli utenti di specificare il nome di un file di input o di output.

Attività comuni

Attività comuni

Contenuto di supporto

Ulteriori informazioni sui punti di estensibilità: è possibile ottenere ulteriori dettagli sulle classi base utilizzate per implementare collaboratori alla compilazione e distribuzione.

Creare collaboratori di esempio: è possibile apprendere le procedure necessarie per creare un collaboratore alla compilazione o distribuzione. Seguendo queste procedure dettagliate si apprenderà come:

  • Creare un collaboratore alla compilazione che generi un rapporto in cui sono elencati tutti gli elementi del modello.

  • Creare un collaboratore alla distribuzione che modifichi il piano di distribuzione prima che venga eseguito.

  • Creare un collaboratore alla distribuzione che generi un rapporto di distribuzione quando viene distribuito un progetto di database.

È possibile creare tutti i collaboratori in un unico assembly o tra diversi assembly, a seconda di come si desidera distribuire i collaboratori nel team.

Distribuire collaboratori alla compilazione e distribuzione ai membri del team: dopo avere verificato il corretto funzionamento dei collaboratori, è possibile distribuirli al team. È possibile chiedere a ogni membro del team di installare e registrare manualmente l'estensione della funzionalità oppure creare un semplice programma di installazione apposito.

Scenari correlati

Creare tipi o destinazioni di refactoring del database personalizzati

Creare e registrare regole aggiuntive per l'analisi del codice del database

Generare dati di test specializzati con un generatore di dati personalizzato

Definire condizioni personalizzate per gli unit test del database

Vedere anche

Concetti

Estensione delle funzionalità di database di Visual Studio

Compilazione e distribuzione di database in un ambiente di sviluppo isolato

Compilazione e distribuzione di database in un ambiente di produzione o gestione temporanea