Изменение процесса сборки и развертывания базы данных с помощью участников сборки и развертывания

 

Visual Studio предоставляет точки расширяемости, с помощью которых можно изменять поведение действий сборки и развертывания для проектов базы данных.

Доступные точки расширения

Можно создать расширение для точек расширяемости, как показано в следующей таблице.

Действие

Тип участника

Примечания

Сборка

BuildContributor

Данный тип расширения выполняется при сборке проекта SQL после полной проверки модели проекта.Участник сборки может обращаться к завершенной модели, а также ко всем свойствам задачи сборки и пользовательским аргументам.

Развертывание

DeploymentPlanModifier

Данный тип расширения выполняется при развертывании проекта SQL как часть процесса развертывания после формирования плана развертывания, но до его выполнения.С помощью DeploymentPlanModifier можно изменять план развертывания, добавляя в него шаги или удаляя их из него.Участники развертывания могут обращаться к плану развертывания, результатам сравнения, исходной и целевой модели.

Развертывание

DeploymentPlanExecutor

Данный тип расширения запускается во время выполнения плана развертывания и предоставляет доступ только для чтения к плану развертывания.DeploymentPlanExectutor выполняет действия на основе плана развертывания.

Поддерживаемые сценарии расширяемости

Можно реализовать участников сборки или развертывания, чтобы включить следующие сценарии:

  • Формирование документации по схеме во время сборки проекта — реализуется BuildContributor и переопределяется метод OnExecute для формирования документации по схеме.Можно создать файл targets, определяющий стандартные аргументы, которые управляют запуском расширений и определяют имя выходного файла.

  • Формирование отчета об отличиях при развертывании проекта SQL — реализуется DeploymentPlanExecutor, который формирует XML-файл при развертывании проекта SQL.

  • Изменение плана развертывания при перемещении данных — реализуется DeploymentPlanModifier, который осуществляет проход по плану развертывания.Для каждого действия SqlTableMigrationStep в данном плане изучается результат сравнения для определения того, должно ли выполняться данное действие, или его следует пропустить.

  • Копирование файлов в сформированный DACPAC при развертывании проекта SQL — реализуется участник развертывания и переопределяется метод OnEstablishDeploymentConfiguration для указания файлов, помеченных в проекте как DeploymentExtensionConfiguration.Эти файлы должны быть скопированы в выходную папку и добавлены в сформированный DACPAC.Также можно изменить участника, чтобы выполнялось слияние нескольких файлов в один новый файл, который будет скопирован в выходную папку и добавлен в манифест развертывания.Во время развертывания можно реализовать метод OnApplyDeploymentConfiguration для извлечения этих файлов из DACPAC и подготовки их к использованию в методе onExecute.

Также можно предоставить доступ к пользовательским аргументам участника в виде «имя-значение», которые записываются в файл проекта базы данных.Эти аргументы могут позволить участнику извлекать данные из MSBuild, а конечным пользователям участника изменять его поведение.Например, можно разрешить пользователям указывать имя входного или выходного файла.

Общие задачи

Общие задачи

Вспомогательное содержимое

Узнайте больше о точках расширяемости: вы можете изучить документацию к базовым классам, на основе которых реализуются участники сборки и развертывания.

BuildContributor

DeploymentContributor

Создание базовых участников: здесь описаны действия, необходимые для создания участника сборки или развертывания.Если вы воспользуетесь данными пошаговыми руководствами, то сможете:

  • создать участника сборки, формирующий отчет со всеми элементами модели;

  • создать участник развертывания, который изменяет план развертывания до его выполнения;

  • создать участник развертывания, который формирует отчет о развертывании проекта SQL.

Участники могут быть размещены в одной или в нескольких сборках с учетом того, как должны быть распределены эти модули среди разработчиков.

Пошаговое руководство. Расширение сборки проекта базы данных для формирования статистики модели

Пошаговое руководство. Расширение процесса развертывания проекта базы данных для изменения плана развертывания

Пошаговое руководство. Расширение процесса развертывания проекта базы данных для анализа плана развертывания

См. также

Задание пользовательских условий для модульных тестов SQL