빌드 및 배포 참가자를 사용하여 데이터베이스 빌드 및 배포 사용자 지정
Visual Studio에서는 데이터베이스 프로젝트에 대한 빌드 및 배포 작업의 동작을 수정하는 데 사용할 수 있는 확장성 지점을 제공합니다. 이러한 확장성 지점은 모든 DSP(데이터베이스 스키마 공급자)에 적용할 수 있도록 정의되어 있습니다.
사용 가능한 확장성 지점
다음 표에 표시된 것과 같이 확장성 지점을 위한 확장을 만들 수 있습니다.
동작 |
참가자 유형 |
참고 |
---|---|---|
Build |
BuildContributor |
이 유형의 확장은 프로젝트 모델의 유효성을 완전히 검사한 후 데이터베이스 프로젝트가 빌드될 때 실행됩니다. 빌드 참가자는 빌드 작업의 모든 속성과 사용자 지정 인수뿐 아니라 완료된 모델에도 액세스할 수 있습니다. |
배포 |
DeploymentPlanModifier |
이 유형의 확장은 배포 계획이 생성된 후 아직 실행되기 전에 배포 파이프라인의 일부로 데이터베이스 프로젝트가 배포될 때 실행됩니다. DeploymentPlanModifier를 사용하여 단계를 추가하거나 제거하는 방법으로 배포 계획을 수정할 수 있습니다. 배포 참가자는 배포 계획, 비교 결과, 소스 및 대상 모델에 액세스할 수 있습니다. |
배포 |
DeploymentPlanExecutor |
이 유형의 확장은 배포 계획이 실행될 때 실행되어 배포 계획에 읽기 전용으로 액세스할 수 있게 해 줍니다. DeploymentPlanExectutor는 배포 계획에 따라 작업을 수행합니다. |
지원되는 확장성 시나리오
다음과 같은 시나리오를 가능하게 해 주는 빌드 또는 배포 참가자를 구현할 수 있습니다.
프로젝트 빌드 중 스키마 설명서 생성
이 시나리오를 지원하려면 BuildContributor를 구현하고, 스키마 설명서를 생성하도록 OnExecute 메서드를 재정의합니다. OnPopulateArguments 메서드를 재정의하여 확장 실행 여부를 제어하는 기본 인수를 노출하고 출력 파일의 이름을 지정할 수 있습니다.데이터베이스 프로젝트가 배포될 때 차이점 보고서 생성
이 시나리오를 지원하려면 데이터베이스 프로젝트가 배포될 때 XML 파일을 생성하는 DeploymentPlanExecutor를 구현합니다.배포 계획을 수정하여 데이터 동작이 발생하는 시기 변경
이 시나리오를 지원하려면 DeploymentPlanModifier를 구현하고 배포 계획을 반복합니다. 배포 계획의 각 SqlTableMigrationStep에 대해 비교 결과를 조사하여 해당 단계를 수행할지 생략할지를 결정합니다.데이터베이스 프로젝트가 배포될 때 빌드 출력 폴더로 파일 복사
이 시나리오를 지원하려면 배포 참가자를 구현하고 OnEstablishDeploymentConfiguration 메서드를 재정의하여 프로젝트 시스템에 의해 DeploymentConfigurationExtension으로 표시된 파일 중 출력 폴더로 복사할 파일을 지정합니다. 참가자를 수정하여 여러 파일을 하나의 새 파일에 병합한 다음 이 파일을 출력 폴더에 복사하고 배포 매니페스트에 추가할 수도 있습니다.
또한 참가자에서 데이터베이스 프로젝트 파일에 기록된 사용자 지정 이름/값 인수 쌍을 노출할 수 있습니다. 이러한 인수를 사용하여 참가자가 MSBuild에서 정보를 추출할 수 있게 하거나 참가자의 최종 사용자가 동작을 사용자 지정할 수 있게 할 수 있습니다. 예를 들어 사용자가 입력 또는 출력 파일의 이름을 지정할 수 있도록 할 수 있습니다.
일반 작업
일반 작업 |
지원 내용 |
---|---|
확장성 지점에 대한 자세한 내용: 빌드 및 배포 참가자를 구현하는 데 사용할 수 있는 기본 클래스에 대해 알아보십시오. |
|
샘플 참가자 만들기: 빌드 또는 배포 참가자를 만드는 데 필요한 단계를 알아보십시오. 이러한 연습을 통해 다음 작업을 수행해 봅니다.
팀에 참가자를 배포하는 방법에 따라 하나의 어셈블리에서 모든 참가자를 만들거나 여러 어셈블리에서 참가자를 만들 수 있습니다. |
|
팀 멤버에게 빌드 침 배포 참가자 배포: 참가자가 올바르게 동작하는지 확인한 후 이를 팀에 배포할 수 있습니다. 각 팀 멤버에게 기능 확장을 수동으로 설치 및 등록할지 묻거나 기능 확장에 대한 간단한 설치 프로그램을 만들 수 있습니다. |
관련 시나리오
사용자 지정 데이터베이스 리팩터링 형식 또는 대상 만들기
데이터베이스 코드를 분석하기 위한 추가 규칙 만들기 및 등록
사용자 지정 데이터 생성기를 통해 특수 테스트 데이터 생성