Share via


Personalizar la compilación e implementación de bases de datos mediante colaboradores de compilación e implementación

Visual Studio proporciona puntos de extensibilidad que puede usar para modificar el comportamiento de las acciones de compilación e implementación en los proyectos de base de datos. Estos puntos de extensión se definen de manera que pueden aplicarse a cualquier implementación de proveedor de esquema de base de datos (DSP).

Puntos de extensibilidad disponibles

Puede crear una extensión para los puntos de extensibilidad, como se muestra en la tabla siguiente:

Acción

Tipo de colaborador

Notas

Compilar

BuildContributor

Este tipo de extensión se ejecuta cuando se compila el proyecto de base de datos después de haberse validado completamente el modelo de proyecto. El colaborador de compilación puede tener acceso al modelo completado, así como a todas las propiedades de la tarea Compilar y a los argumentos personalizados.

Implementar

DeploymentPlanModifier

Este tipo de extensión se ejecuta cuando se implementa el proyecto de base de datos, como parte de la canalización de implementación, una vez generado el plan de implementación, pero antes de que éste se ejecute. Puede usar un DeploymentPlanModifier para modificar el plan de implementación agregando o quitando pasos. Los colaboradores de implementación pueden tener acceso al plan de implementación, a los resultados de la comparación, y a los modelos de origen y de destino.

Implementar

DeploymentPlanExecutor

Este tipo de extensión se ejecuta cuando se ejecuta el plan de implementación y proporciona acceso de solo lectura a dicho plan. DeploymentPlanExectutor realiza acciones basándose en el plan de implementación.

Escenarios de extensibilidad compatibles

Puede implementar colaboradores de compilación o de implementación para habilitar los escenarios siguientes:

  • Generar la documentación del esquema durante una compilación del proyecto
    Para admitir este escenario, implemente un BuildContributor y reemplace el método OnExecute para generar la documentación del esquema. Puede reemplazar el método OnPopulateArguments para exponer argumentos predeterminados que controlen si la extensión se ejecuta y para especificar el nombre del archivo de salida.

  • Generar un informe de diferencias cuando se implementa un proyecto de base de datos
    Para admitir este escenario, implemente un DeploymentPlanExecutor que genere el archivo XML cuando se implemente el proyecto de base de datos.

  • Modificar el plan de implementación para cambiar cuándo se produce el traslado de datos
    Para admitir este escenario, implemente un DeploymentPlanModifier y recorra en iteración el plan de implementación. Para cada SqlTableMigrationStep de ese plan, examine el resultado de la comparación para determinar si ese paso se debe realizar u omitir.

  • Copiar archivos a la carpeta de resultados de la compilación cuando se implementa un proyecto de base de datos
    Para admitir este escenario, implemente un colaborador de implementación y reemplace el método OnEstablishDeploymentConfiguration para especificar qué archivos marcados como DeploymentConfigurationExtension (por el sistema de proyectos) se deben copiar a la carpeta de resultados. También puede modificar el colaborador para combinar varios archivos en un nuevo archivo que se copia a la carpeta de resultados y se agrega al manifiesto de implementación.

Además, puede exponer pares personalizados de argumentos de nombre y valor del colaborador que se escriben en el archivo de proyecto de base de datos. Puede usar estos argumentos para permitir que el colaborador extraiga información de MSBuild o para permitir que el usuario final de su colaborador personalice el comportamiento. Por ejemplo, podría permitir a los usuarios especificar el nombre de un archivo de entrada o de salida.

Tareas comunes

Tareas comunes

Contenido adicional

Más información sobre los puntos de extensibilidad: puede obtener más información sobre las clases base que usar para implementar colaboradores de compilación y de implementación.

Crear colaboradores del ejemplo: obtenga información sobre los pasos necesarios para crear un colaborador de compilación o de implementación. Si sigue estos tutoriales, hará lo siguiente:

  • Crear un colaborador de compilación que genera un informe en el que se enumeran todos los elementos del modelo.

  • Crear un colaborador de implementación que cambia el plan de implementación antes de ejecutarse.

  • Crear un colaborador de implementación que genera un informe de implementación al implementar un proyecto de base de datos.

Se pueden crear todos los colaboradores en un solo ensamblado o en varios ensamblados, dependiendo de cómo se vayan a distribuir los colaboradores al equipo.

Distribuir colaboradores de compilación y de implementación a los miembros del equipo: después de comprobar que los colaboradores funcionan correctamente, puede distribuirlos a su equipo. Puede pedir a cada miembro del equipo que instale y registre manualmente la extensión de características, o bien puede crear un programa de instalación sencillo para ello.

Escenarios relacionados

Crear tipos de refactorización de base de datos personalizados o destinos

Crear y registrar reglas adicionales para analizar el código de base de datos

Generar datos de pruebas especializados con un generador de datos personalizado

Definir condiciones personalizadas para pruebas unitarias de base de datos

Vea también

Conceptos

Extender las características de base de datos de Visual Studio

Compilar e implementar bases de datos en un entorno de desarrollo aislado

Generar e implementar bases de datos en un entorno de ensayo o de producción