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:
È 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