다음을 통해 공유


빌드 및 배포 참가자를 사용하여 데이터베이스 빌드 및 배포 사용자 지정

Visual Studio에서는 데이터베이스 프로젝트에 대한 빌드 및 배포 작업의 동작을 수정하는 데 사용할 수 있는 확장성 지점을 제공합니다. 이러한 확장성 지점은 모든 DSP(데이터베이스 스키마 공급자)에 적용할 수 있도록 정의되어 있습니다.

사용 가능한 확장성 지점

다음 표에 표시된 것과 같이 확장성 지점을 위한 확장을 만들 수 있습니다.

동작

참가자 유형

참고

Build

BuildContributor

이 유형의 확장은 프로젝트 모델의 유효성을 완전히 검사한 후 데이터베이스 프로젝트가 빌드될 때 실행됩니다. 빌드 참가자는 빌드 작업의 모든 속성과 사용자 지정 인수뿐 아니라 완료된 모델에도 액세스할 수 있습니다.

배포

DeploymentPlanModifier

이 유형의 확장은 배포 계획이 생성된 후 아직 실행되기 전에 배포 파이프라인의 일부로 데이터베이스 프로젝트가 배포될 때 실행됩니다. DeploymentPlanModifier를 사용하여 단계를 추가하거나 제거하는 방법으로 배포 계획을 수정할 수 있습니다. 배포 참가자는 배포 계획, 비교 결과, 소스 및 대상 모델에 액세스할 수 있습니다.

배포

DeploymentPlanExecutor

이 유형의 확장은 배포 계획이 실행될 때 실행되어 배포 계획에 읽기 전용으로 액세스할 수 있게 해 줍니다. DeploymentPlanExectutor는 배포 계획에 따라 작업을 수행합니다.

지원되는 확장성 시나리오

다음과 같은 시나리오를 가능하게 해 주는 빌드 또는 배포 참가자를 구현할 수 있습니다.

  • 프로젝트 빌드 중 스키마 설명서 생성
    이 시나리오를 지원하려면 BuildContributor를 구현하고, 스키마 설명서를 생성하도록 OnExecute 메서드를 재정의합니다. OnPopulateArguments 메서드를 재정의하여 확장 실행 여부를 제어하는 기본 인수를 노출하고 출력 파일의 이름을 지정할 수 있습니다.

  • 데이터베이스 프로젝트가 배포될 때 차이점 보고서 생성
    이 시나리오를 지원하려면 데이터베이스 프로젝트가 배포될 때 XML 파일을 생성하는 DeploymentPlanExecutor를 구현합니다.

  • 배포 계획을 수정하여 데이터 동작이 발생하는 시기 변경
    이 시나리오를 지원하려면 DeploymentPlanModifier를 구현하고 배포 계획을 반복합니다. 배포 계획의 각 SqlTableMigrationStep에 대해 비교 결과를 조사하여 해당 단계를 수행할지 생략할지를 결정합니다.

  • 데이터베이스 프로젝트가 배포될 때 빌드 출력 폴더로 파일 복사
    이 시나리오를 지원하려면 배포 참가자를 구현하고 OnEstablishDeploymentConfiguration 메서드를 재정의하여 프로젝트 시스템에 의해 DeploymentConfigurationExtension으로 표시된 파일 중 출력 폴더로 복사할 파일을 지정합니다. 참가자를 수정하여 여러 파일을 하나의 새 파일에 병합한 다음 이 파일을 출력 폴더에 복사하고 배포 매니페스트에 추가할 수도 있습니다.

또한 참가자에서 데이터베이스 프로젝트 파일에 기록된 사용자 지정 이름/값 인수 쌍을 노출할 수 있습니다. 이러한 인수를 사용하여 참가자가 MSBuild에서 정보를 추출할 수 있게 하거나 참가자의 최종 사용자가 동작을 사용자 지정할 수 있게 할 수 있습니다. 예를 들어 사용자가 입력 또는 출력 파일의 이름을 지정할 수 있도록 할 수 있습니다.

일반 작업

일반 작업

지원 내용

확장성 지점에 대한 자세한 내용: 빌드 및 배포 참가자를 구현하는 데 사용할 수 있는 기본 클래스에 대해 알아보십시오.

샘플 참가자 만들기: 빌드 또는 배포 참가자를 만드는 데 필요한 단계를 알아보십시오. 이러한 연습을 통해 다음 작업을 수행해 봅니다.

  • 모델의 모든 요소가 나열된 보고서를 생성하는 빌드 참가자를 만듭니다.

  • 배포 계획이 실행되기 전에 배포 계획을 변경하는 배포 참가자를 만듭니다.

  • 데이터베이스 프로젝트를 배포할 때 배포 보고서를 생성하는 배포 참가자를 만듭니다.

팀에 참가자를 배포하는 방법에 따라 하나의 어셈블리에서 모든 참가자를 만들거나 여러 어셈블리에서 참가자를 만들 수 있습니다.

팀 멤버에게 빌드 침 배포 참가자 배포: 참가자가 올바르게 동작하는지 확인한 후 이를 팀에 배포할 수 있습니다. 각 팀 멤버에게 기능 확장을 수동으로 설치 및 등록할지 묻거나 기능 확장에 대한 간단한 설치 프로그램을 만들 수 있습니다.

관련 시나리오

사용자 지정 데이터베이스 리팩터링 형식 또는 대상 만들기

데이터베이스 코드를 분석하기 위한 추가 규칙 만들기 및 등록

사용자 지정 데이터 생성기를 통해 특수 테스트 데이터 생성

데이터베이스 단위 테스트의 사용자 지정 조건 정의

참고 항목

개념

Visual Studio의 데이터베이스 기능 확장

데이터베이스를 빌드하여 격리된 개발 환경에 배포

데이터베이스를 빌드하여 스테이징 환경 또는 프로덕션 환경에 배포