Personalize a compilação e a implantação do banco de dados usando os colaboradores de compilação e implantação
O Visual Studio fornece os pontos de extensibilidade que você pode usar para modificar o comportamento das ações de compilação e implantação de projetos de banco de dados.
Pontos de extensibilidade disponíveis
Você pode criar uma extensão para os pontos de extensibilidade, conforme mostrado na seguinte tabela:
Ação |
Tipo de colaborador |
Observações |
---|---|---|
Compilação |
BuildContributor |
Esse tipo de extensão é executado quando o projeto SQL é compilado depois que o modelo de projeto tiver sido completamente validado.O colaborador de compilação pode acessar o modelo concluído, além de todas as propriedades da tarefa de compilação e todos os argumentos personalizados. |
Implantar |
DeploymentPlanModifier |
Esse tipo de extensão foi executado quando o projeto SQL foi implantado, como parte do pipeline de implantação, depois que o plano de implantação foi gerado, mas antes de o plano de implantação ser executado.Você pode usar um DeploymentPlanModifier para modificar o plano de implantação adicionando ou removendo etapas.Os colaboradores de implantação podem acessar o plano de implantação, os resultados da comparação e os modelos de origem e destino. |
Implantar |
DeploymentPlanExecutor |
Esse tipo de extensão é executado quando o plano de implantação é executado e fornece acesso somente leitura para o plano de implantação.O DeploymentPlanExectutor executa ações com base no plano de implantação. |
Cenários de extensibilidade com suporte
Você pode implementar os colaborador de compilação ou implantação para habilitar os seguintes cenários de exemplo:
Gerar a documentação do esquema durante a compilação do projeto - para dar suporte a esse cenário, você implementa um BuildContributor e substitui o método OnExecute para gerar a documentação do esquema.Você pode criar um arquivo de destino que define os argumentos padrão que controlam se a extensão é executada e para especificar o nome do arquivo de saída.
Gera um relatório de diferença quando um projeto SQL é implantado - para dar suporte a esse cenário, você implementa DeploymentPlanExecutor que gera o arquivo XML quando o projeto SQL é implantado.
Modifique o plano de implantação para alterar quando a movimentação dos dados ocorrer - para dar suporte a esse cenário, você implementa uma DeploymentPlanModifier e o itera no plano de implantação.Para cada SqlTableMigrationStep nesse plano, você examinará o resultado da comparação para determinar se essa etapa deve ser executada ou ignorada.
Copie os arquivos para o dacpac gerado quando um projeto SQL foi implantado - para dar suporte a esse cenário, você implementa um colaborador de implantação e substitui o método OnEstablishDeploymentConfiguration para especificar quais arquivos são marcados como DeploymentExtensionConfiguration pelo sistema de projeto.Esses arquivos devem ser copiados para a pasta de saída e adicionado ao dacpac gerado.Você também pode modificar o colaborador para mesclar vários arquivos em um novo arquivo que será copiado para a pasta de saída e adicionado ao manifesto de implantação.Durante a implantação, você pode implementar o método OnApplyDeploymentConfiguration para extrair os arquivos do dacpac e para prepará-los para serem usados no método OnExecute.
Além disso, você pode expor pares personalizados de argumentos de nome/valor de seu colaborador que são gravados no arquivo de projeto de banco de dados.Você pode usar esses argumentos para habilitar o colaborador para extrair informações do MSBuild ou permitir que o usuário final do seu colaborador personalize o comportamento.Por exemplo, você pode permitir que os usuários especifiquem o nome de um arquivo de entrada ou saída.
Tarefas comuns
Tarefas comuns |
Conteúdo de suporte |
---|---|
Saiba mais sobre os pontos de extensibilidade: você pode ler sobre as classes base que você usa para implementar os colaborador de compilação e implantação. |
|
Crie colaboradores de exemplo: conheça as etapas necessárias para criar um colaborador de compilação ou implantação.Se você seguir esse passo a passo, você poderá:
Você pode criar todos os seus colaboradores em um único assembly ou entre vários assemblies, dependendo de como você deseja que os colaboradores sejam distribuídos em sua equipe. |
Consulte também
Defina condições personalizadas para testes de unidade do SQL