연습: 사용자 지정 워크플로를 정의하여 Team Foundation Build에서 데이터베이스 배포

업데이트: 2010년 7월

Team Foundation Build를 사용하여 데이터베이스 프로젝트를 배포하려면 먼저 데이터베이스를 배포하도록 구성된 사용자 지정 워크플로를 정의해야 합니다. 빌드 정의에서 해당 워크플로 정의를 사용하려면 먼저 사용자 지정 워크플로를 정의해야 합니다. Windows Workflow 4.0을 사용하여 워크플로를 정의합니다. 이 절차는 간단하여 전문가가 아니어도 수행할 수 있습니다.

이 연습을 완료하려면 다음 작업을 완료해야 합니다.

  1. 빌드 프로세스 템플릿 만들기

  2. 새 템플릿 사용자 지정

  3. 버전 제어로 템플릿 체크 인

필요한 권한

다음 절차를 수행하려면 빌드 정의 편집 권한이 허용으로 설정되어 있어야 합니다. 자세한 내용은 Team Foundation Server 권한을 참조하십시오.

빌드 프로세스 템플릿 만들기

빌드 프로세스를 만드는 가장 쉬운 방법은 기본 템플릿을 복사하는 것입니다. 빌드 정의를 만들 때 이 작업을 수행할 수 있습니다. 빌드 정의는 정상적으로 완료됩니다. 이 연습의 초점은 사용자 지정 빌드 프로세스 템플릿에 맞춰지므로 이 연습에서는 새 빌드를 정의하는 데 대한 기타 세부 사항은 다루지 않습니다. 데이터베이스 프로젝트의 빌드를 정의하는 방법에 대한 자세한 내용은 방법: Team Foundation Build를 사용하여 변경 내용 배포를 참조하십시오.

사용자 지정 템플릿을 만들려면

  1. 팀 탐색기에서 사용자 지정 워크플로를 만들 팀 프로젝트를 클릭합니다.

  2. 빌드 메뉴에서 새 빌드 정의를 클릭합니다.

  3. 프로세스 탭을 클릭하여 다음 다이어그램을 확인합니다.

    새 빌드 정의의 프로세스 탭

  4. 자세한 정보 표시를 클릭하고 새로 만들기를 클릭합니다.

    새 빌드 프로세스 템플릿 대화 상자가 나타납니다.

  5. 기존 XAML 파일 복사를 클릭합니다.

  6. 새 파일 이름에서 사용자 지정 워크플로 이름을 지정한 다음 확인을 클릭합니다.

    참고

    기존 XAML 파일을 다시 사용하려는 경우 기존 XAML 파일 선택을 클릭하고 버전 제어 서버에 있는 파일 경로를 지정합니다.

  7. 빌드 정의 창의 빌드 프로세스 파일 메뉴에서 템플릿 이름이 포함된 하이퍼링크를 클릭합니다.

    새 템플릿이 포함된 폴더가 소스 제어 탐색기에 나타납니다.

  8. 폴더 창에서 새 템플릿이 포함된 폴더를 마우스 오른쪽 단추로 클릭한 다음 최신 버전 가져오기를 클릭합니다.

  9. 새 템플릿을 마우스 오른쪽 단추로 클릭하고 편집하기 위해 체크 아웃을 클릭합니다.

    체크 아웃 대화 상자가 나타납니다.

  10. 체크 아웃을 클릭합니다.

  11. 새 템플릿을 마우스 오른쪽 단추로 클릭한 다음 보기를 클릭합니다.

    Visual Studio Windows Workflow Designer가 나타납니다.

    자세한 내용은 다음 항목 중 하나를 참조하십시오.

새 템플릿 사용자 지정

기본 템플릿에 시퀀스를 추가하여 빌드 프로세스 끝에 배포 단계를 추가해야 합니다. Windows Workflow Designer를 사용하여 XAML 파일을 사용자 지정합니다. 전에 디자이너를 사용해 본 적이 없는 사용자에게도 다음 절차의 단계가 특별히 복잡하지는 않습니다. 요약하자면, 빌드가 성공하고 테스트가 실패하지 않은 경우 VSDBCMD.EXE를 사용하여 데이터베이스를 배포할 워크플로에 시퀀스를 추가하게 됩니다.

빌드가 성공하고 테스트를 통과한 경우 또는 테스트가 없었던 경우에 데이터베이스를 배포할 단일 If 활동이 이 시퀀스에 포함됩니다. 이 정의를 쉽게 따를 수 있도록 이 단원은 다음 네 개의 절차로 나뉩니다.

  1. 워크플로에 데이터베이스 배포 시퀀스를 추가하려면

  2. If 활동을 추가하려면

  3. Then Deploy 블록을 정의하려면

  4. Else Skip Deployment 블록을 정의하려면

워크플로에 데이터베이스 배포 시퀀스를 추가하려면

  1. Windows Workflow Designer에서 모두 축소를 클릭합니다.

    다음 다이어그램이 나타납니다.

    초기 배포 워크플로

  2. 도구 상자를 열고 제어 흐름 섹션을 확장한 다음 CheckInShelveset 빌드에 대해 제어된 변경 내용 체크 인 아래에 있는 디자이너의 화살표 위로 시퀀스 활동을 끌어 놓습니다. 화살표 위에서 잠시 멈추면 두 번째 화살표가 나타납니다.

  3. 다음 다이어그램에 표시된 대로 두 화살표 사이에 활동을 놓습니다.

    새 시퀀스를 놓은 후의 워크플로

  4. 추가한 시퀀스를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    속성 창이 나타납니다.

  5. DisplayName 속성을 데이터베이스 배포로 설정합니다.

  6. 데이터베이스 배포 시퀀스에서 보려면 두 번 클릭을 두 번 클릭합니다.

    다음 다이어그램에 표시된 대로 디자이너가 데이터베이스 배포 시퀀스에서 확대됩니다.

    배포 시퀀스를 확장한 후의 워크플로

    다음 다이어그램에 표시된 대로 디자이너 위쪽에서 탐색 채널을 사용할 수 있습니다.

    Windows Workflow Designer의 탐색 채널

그런 다음 If 활동을 배포 시퀀스에 추가합니다.

If 활동을 추가하려면

  1. 도구 상자를 열고 제어 흐름 섹션을 확장한 다음 If 활동을 여기에 작업 놓기 위로 끌어 놓습니다.

    If 활동을 아직 구성하지 않았으므로 다음 다이어그램에 표시된 대로 데이터베이스 배포 시퀀스와 If 활동에 모두 경고 아이콘이 나타납니다.

    If 활동을 추가한 후의 워크플로

  2. 추가한 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    속성 창이 나타납니다.

  3. If 활동의 DisplayName 속성을 빌드 및 테스트가 성공한 경우로 설정합니다.

  4. If 작업에서 보려면 두 번 클릭을 두 번 클릭합니다.

  5. 조건에 다음 조건을 입력합니다.

    BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded And (BuildDetail.TestStatus = BuildPhaseStatus.Succeeded Or BuildDetail.TestStatus = BuildPhaseStatus.Unknown)
    

    이 조건은 빌드가 성공했는지 여부 및 테스트가 성공했는지 또는 테스트가 실행되지 않았는지 테스트합니다.

빌드 및 테스트가 성공한 경우 활동은 다음 다이어그램과 비슷합니다.

If 활동을 확장한 후의 워크플로

그런 다음 프로세스 호출 활동을 If 활동의 Then 부분에 추가합니다.

Then Deploy 블록을 정의하려면

  1. 도구 상자Team Foundation 빌드 활동 섹션에서 InvokeProcess 활동을 찾아 Then 절의 여기에 작업 놓기로 끌어 놓습니다.

    InvokeProcess 활동을 아직 구성하지 않았으므로 빌드 및 테스트가 성공한 경우 활동 및 InvokeProcess 활동에 모두 경고 아이콘이 나타납니다.

  2. VSDBCMD 호출 활동에서 보려면 두 번 클릭을 두 번 클릭합니다.

    이 활동은 다음과 같이 표시됩니다.

    Then 절을 정의하는 중의 워크플로

  3. 다음 하위 작업을 수행하여 InvokeProcess 활동의 속성을 설정합니다.

    1. 추가한 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

      속성 창이 나타납니다.

    2. InvokeProcess 활동의 DisplayName 속성을 VSDBCMD 호출로 설정합니다.

    3. Arguments 속성을 "/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest"로 설정합니다. DatabaseProjectName을 배포할 데이터베이스 프로젝트의 이름으로 바꿔야 합니다.

    4. FileName 속성을 빌드 서버의 VSDBCMD.EXE 경로로 설정합니다. 예를 들어 빌드 컴퓨터에 Visual Studio를 설치한 경우 C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.EXE를 지정하거나 빌드 컴퓨터에 Deploy 폴더를 복사한 경우 C:\Deploy\VSDBCMD.EXE를 지정할 수 있습니다.

      중요

      VSDBCMD.EXE를 사용하여 데이터베이스를 배포하려면 Deploy 폴더의 내용이 빌드 컴퓨터에 있어야 합니다. 자세한 내용은 방법: VSDBCMD.EXE를 사용하여 명령 프롬프트에서 데이터베이스 배포 준비를 참조하십시오.

    5. WorkingDirectory 속성을 BuildDetail.DropLocation으로 설정합니다.

  4. 도구 상자를 열고 Team Foundation 빌드 활동 섹션에서 WriteBuildMessage 활동을 찾아 표준 출력 처리 섹션의 여기에 작업 놓기로 끌어 놓습니다.

    WriteBuildMessage 활동을 아직 구성하지 않았으므로 VSDBCMD 호출 활동 및 WriteBuildMessage 활동에 모두 경고 아이콘이 나타납니다.

  5. 다음 하위 작업을 수행하여 WriteBuildMessage 활동의 속성을 설정합니다.

    1. 추가한 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

      속성 창이 나타납니다.

    2. WriteBuildMessage 활동의 DisplayName 속성을 VSDBCMD 출력으로 설정합니다.

    3. Importance 속성을 Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High로 설정합니다.

    4. Message 속성을 stdOutput으로 설정합니다.

  6. 도구 상자를 열고 Team Foundation 빌드 활동 섹션에서 WriteBuildError 활동을 찾아 오류 출력 처리 섹션의 여기에 작업 놓기로 끌어 놓습니다.

    WriteBuildError 활동을 아직 구성하지 않았으므로 VSDBCMD 호출 활동 및 WriteBuildError 활동에 모두 경고 아이콘이 나타납니다.

  7. 다음 하위 작업을 수행하여 WriteBuildError 활동의 속성을 설정합니다.

    1. 추가한 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

      속성 창이 나타납니다.

    2. WriteBuildError 활동의 DisplayName 속성을 VSDBCMD 호출로 설정합니다.

    3. Message 속성을 errOutput으로 설정합니다.

    4. 디자이너 위쪽의 채널에서 빌드 및 테스트가 성공한 경우를 클릭합니다.

      그러면 워크플로에서 한 단계 축소됩니다.

이때 다음 다이어그램에 표시된 대로 워크플로가 나타납니다.

Then 절을 완료한 후의 워크플로

그런 다음 Else 활동의 세부 정보를 정의합니다.

Else Skip Deployment 블록을 정의하려면

  1. 도구 상자Team Foundation 빌드 활동 섹션에서 WriteBuildWarning 활동을 찾아 Else 절의 여기에 작업 놓기로 끌어 놓습니다.

    WriteBuildWarning 활동을 아직 구성하지 않았으므로 빌드 및 테스트가 성공한 경우 활동 및 WriteBuildWarning 활동에 모두 경고 아이콘이 나타납니다.

  2. WriteBuildWarning 활동의 DisplayName 속성을 배포 건너뜀으로 설정합니다.

  3. Message 속성을 "데이터베이스 배포를 건너뛰었습니다"로 설정합니다.

    추가한 워크플로 활동을 구성했으므로 경고 아이콘이 더 이상 나타나지 않습니다.

다음 다이어그램에 표시된 대로 이제 If 활동이 나타나야 합니다.

데이터베이스 배포 워크플로 완료

지정한 데이터베이스 프로젝트를 배포하기 위해 빌드 워크플로를 업데이트했습니다. 이제 템플릿을 버전 제어로 체크 인해야 빌드 프로세스에서 사용할 수 있습니다.

버전 제어로 템플릿 체크 인

빌드 정의에서 워크플로를 사용하려면 먼저 워크플로를 버전 제어로 체크 인해야 합니다. 분기와 같은 버전 제어의 기능을 활용할 수도 있습니다. 프로젝트를 분기할 때 워크플로를 분기할 수 있습니다.

  1. 워크플로를 저장하고 디자이너를 닫습니다.

  2. 소스 제어 탐색기에서 새 템플릿을 마우스 오른쪽 단추로 클릭한 다음 보류 중인 변경 내용 체크 인을 클릭합니다.

    체크 인 대화 상자가 나타납니다.

  3. (선택 사항) 체크 인 설명 또는 변경에 대한 추가 정보를 지정할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오.

  4. 체크 인을 클릭합니다.

이제 이 연습에서 빌드한 사용자 지정 워크플로를 사용하는 빌드를 정의할 수 있습니다. 자세한 내용은 방법: Team Foundation Build를 사용하여 변경 내용 배포를 참조하십시오.

다음 단계

이제 사용자 지정 템플릿을 테스트해야 합니다. 자세한 내용은 방법: Team Foundation Build를 사용하여 변경 내용 배포를 참조하십시오.

참고 항목

작업

방법: VSDBCMD.EXE를 사용하여 명령 프롬프트에서 데이터베이스 배포 준비

방법: 새 데이터베이스 또는 기존 데이터베이스로 변경 내용 배포

개념

데이터베이스 빌드 및 배포 개요

변경 기록

날짜

변경 내용

이유

2010년 7월

Team Foundation Build를 사용하여 사용자 지정 워크플로를 만들어 데이터베이스를 배포하는 방법을 보여 주기 위해 이 항목을 추가했습니다.

향상된 기능 관련 정보