Personalizzare la compilazione e la distribuzione del database tramite collaboratori alla compilazione e distribuzione
Visual Studio fornisce punti di estendibilità che è possibile utilizzare per modificare il comportamento delle azioni di compilazione e distribuzione per i progetti di database.
Punti di estendibilità disponibili
È possibile creare un'estensione per i punti di estendibilità, come illustrato nella tabella seguente:
Azione | Tipo di collaboratore | Note |
---|---|---|
Compilazione | BuildContributor | Questo tipo di estensione viene eseguito quando il progetto SQL viene compilato dopo che il modello di progetto è stato completamente convalidato. Il collaboratore alla compilazione può accedere al modello completato, oltre a tutte le proprietà dell'attività di compilazione e a qualsiasi argomento personalizzato. |
Distribuzione | DeploymentPlanModifier | Questo tipo di estensione viene eseguito quando il progetto SQL viene distribuito, come parte della pipeline di distribuzione, dopo che il piano di distribuzione è stato generato ma prima che venga eseguito. È possibile utilizzare 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 destinazione. |
Distribuzione | DeploymentPlanExecutor | Questo tipo di estensione viene eseguito quando il piano di distribuzione viene eseguito e fornisce accesso in sola lettura al piano di distribuzione. DeploymentPlanExecutor esegue azioni in base al piano di distribuzione. |
Scenari di estendibilità supportati
È possibile implementare i collaboratori alla compilazione o distribuzione per consentire gli scenari di esempio seguenti:
Generare la documentazione dello schema durante una compilazione del progetto: per supportare questo scenario, implementare un elemento BuildContributor ed eseguire l'override del metodo OnExecute per generare la documentazione dello schema. È possibile creare un file targets che definisce gli argomenti predefiniti che controllano se l'estensione viene eseguita e per specificare il nome del file di output.
Generare un report delle differenze quando un progetto SQL viene distribuito: per supportare questo scenario, implementare DeploymentPlanExecutor che genera il file XML quando viene distribuito il progetto SQL.
Modificare il piano di distribuzione per modificare quando viene effettuato lo spostamento dei dati: per supportare questo scenario, implementare DeploymentPlanModifier ed eseguire l'iterazione del piano di distribuzione. Per ogni SqlTableMigrationStep nel piano, esaminare il risultato del confronto per determinare se il passaggio deve essere eseguito o ignorato.
Copiare i file nel dacpac generato quando viene distribuito un progetto SQL: per supportare questo scenario, implementare un collaboratore alla distribuzione ed eseguire l'override del metodo OnEstablishDeploymentConfiguration per specificare quali file sono contrassegnati come DeploymentExtensionConfiguration dal sistema del progetto. Questi file devono essere copiati nella cartella di output e aggiunti all'interno del dacpac generato. È anche possibile modificare il collaboratore per unire più file in un nuovo file copiato nella cartella di output e aggiunto al manifesto di distribuzione. Durante la distribuzione, è possibile implementare il metodo OnApplyDeploymentConfiguration per estrarre questi file da dacpac e prepararli per l'utilizzo nel metodo OnExecute.
È inoltre possibile esporre coppie personalizzate di argomenti nome/valore dal collaboratore scritti nel file progetto di database. È possibile utilizzare questi argomenti per consentire al collaboratore di estrarre informazioni da MSBuild o per 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 |
---|---|
Altre informazioni sui punti di estendibilità: altre informazioni sulle classi di base usate per implementare i collaboratori alla compilazione e alla distribuzione. | BuildContributor DeploymentContributor |
Creare collaboratori di esempio: informazioni sui passaggi necessari per creare un collaboratore alla compilazione o alla distribuzione. Se si utilizzano queste procedure dettagliate, è necessario: Creare un collaboratore alla compilazione che genera un report in cui sono elencati tutti gli elementi del modello. Creare un collaboratore alla distribuzione che modifica il piano di distribuzione prima che venga eseguito. Creare un collaboratore alla distribuzione che genera un report di distribuzione quando si distribuisce un progetto SQL. È possibile creare tutti i collaboratori in un unico assembly o tra più assembly, a seconda di come si desidera che i collaboratori vengano distribuiti al team. |
Procedura dettagliata: Estendere la compilazione del progetto del database per generare statistiche del modello Procedura dettagliata: estendere la distribuzione del progetto di database per modificare il piano di distribuzione Procedura dettagliata: estendere la distribuzione del progetto di database per analizzare il piano di distribuzione |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per