다음을 통해 공유


빌드 프로세스에 기본 템플릿 사용

기본 템플릿(TFVC icon TfvcTemplate.12.xaml 또는 Git icon GitTemplate.12.xaml)을 사용하여 코드를 빌드하고 테스트하는 기본 프로세스를 빠르게 정의할 수 있습니다. TFBuild(Team Foundation Build)의 코드 빌드, 테스트 실행, 스크립트 등의 기타 프로세스 실행 방식을 제어할 수도 있습니다.

시작

  1. (선택 사항) 새 빌드 정의를 만들기 전에 팀 탐색기 홈 페이지(키보드: Ctrl + 0, H)에서 프로젝트 상자에 자동으로 지정되도록 빌드할 솔루션을 엽니다.

  2. 팀 탐색기에서 팀 프로젝트에 연결되어 있는지 확인한 후(키보드: Ctrl+0, C) 빌드 페이지를 엽니다(키보드: Ctr +0, B).

  3. 새 빌드 정의 링크를 선택하거나 빌드를 선택하여 상황에 맞는 메뉴를 연 다음 빌드 정의 편집을 선택합니다.

    TF225001 오류 메시지가 나타나면 빌드 컨트롤러를 구성합니다.

  4. 프로세스 탭빌드 프로세스 템플릿에는 기본 템플릿이 기본적으로 선택되어 있습니다.

    Default Template build process

    경고

    Visual Studio Online에서 호스트되는 Git icon Git 팀 프로젝트에 연결되어 있나요?체크 아웃 재정의프로젝트 매개 변수가 누락되었습니까?

    Parameters from the wrong Git default template

    Visual Studio Online에서 올바른 기본 Git 빌드 프로세스 템플릿을 사용하고 있는지 확인하는 방법을 참조하십시오.

  5. 이 항목 뒷부분의 정보를 참조하여 이 빌드 정의에 포함할 기능을 지정하는 필드를 완성합니다.

  6. 프로세스 탭에서 필드를 작성한 후에 다른 탭에서 빌드 프로세스 옵션을 지정합니다.

    자세한 내용은 빌드 정의 만들기 또는 편집을 참조하십시오.

다음에 수행할 작업

  • 코드 가져오기

  • 코드 빌드

    • 빌드할 프로젝트 지정

    • 빌드할 플랫폼 및 구성 지정

    • 빌드 옵션 지정

  • 코드 테스트 및 테스트 영향 분석

  • 빌드 중 기타 프로세스 실행

  • 서버의 빌드 실행 방법 제어

    • 빌드를 처리하는 빌드 에이전트 지정

    • 빌드 에이전트 시간 제한 지정

  • 빌드 출력 제어

    • 빌드 출력 위치 지정

    • 완료된 빌드의 이름을 팀에 유용하게 설정

    • 빌드에서 기호 게시

    • 작업 항목 연결 및 만들기

    • 실패 시 작업 항목 만들기

    • 소스 코드에 레이블 지정

  • 일반적인 질문에 대한 답변 얻기

코드 가져오기

빌드 에이전트가 소스 설정 탭에서 지정한 소스 코드를 가져오는 방식에 대해 몇 가지 옵션을 설정할 수 있습니다.

수행하려는 작업

설정할 매개 변수

지침

빌드를 처리하기 전에 빌드 에이전트에서 작업 영역을 정리할지, Git 리포지토리를 정리할지 지정

TFVC icon TFVC: 작업 영역 정리

Git icon Git: 리포지토리 정리

빌드가 처리되기 전에 기존 출력과 소스 코드 파일을 모두 삭제하려면 True를 선택합니다. 컴파일 프로세스가 빌드 프로세스의 문제를 최대한 노출하도록 하려면 이 옵션을 사용합니다.

빌드 프로세스에 정리된 작업 영역 또는 리포지토리가 필요하지 않는 경우 이 매개 변수 값을 False로 설정하면 빌드를 실행하는 데 필요한 시간을 크게 줄일 수 있습니다.

호스트된 빌드 컨트롤러를 사용하는 경우 이 설정은 아무런 영향을 주지 않습니다. 이 경우 각 빌드에 새로운 작업 디렉터리가 생성됩니다.

특정 버전의 소스 코드 빌드

TFVC icon TFVC: 버전 가져오기

Git icon Git: 체크 아웃 재정의

TFVC: 빌드할 버전을 지정하는 versionspec을 지정합니다.

Git: 체크 아웃할 분기 또는 커밋 ID를 지정합니다.

코드 빌드

MSBuild를 사용하여 코드를 컴파일할 수 있습니다.

빌드할 프로젝트 지정

빌드 프로세스 매개 변수 테이블의 빌드에 있는 프로젝트 상자에 빌드할 솔루션이나 코드 프로젝트를 하나 이상 지정할 수 있습니다. 솔루션 또는 프로젝트를 적어도 하나는 지정해야 합니다.

여러 개의 관련 프로젝트를 빌드하는 경우 각 프로젝트를 개별적으로 지정하는 대신 일반적으로 해당 프로젝트들을 하나의 솔루션에 추가한 다음 프로젝트 셀에 해당 솔루션을 지정합니다.

프로젝트 상자에서 줄임표 단추**(...)**를 선택하여 솔루션/프로젝트 대화 상자를 열고 빌드할 솔루션 또는 프로젝트를 지정할 수 있습니다.

TFVC 팀 프로젝트를 위해 프로젝트 상자를 수동으로 채우려면 빌드할 각 프로젝트 또는 솔루션의 전체 버전 제어 경로를 지정합니다. 다음 예와 같이 각 값은 쉼표로 구분합니다.

$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln

중요

TFVC를 사용하는 경우 각 프로젝트 또는 솔루션의 경로가 빌드 정의의 소스 설정 탭에 나열된 소스 제어 폴더 값 중 하나의 자식인지 확인합니다.Git를 사용하는 경우 프로젝트 또는 솔루션이 빌드 중인 분기의 Git 리포지토리에 있는지 확인합니다.

빌드할 플랫폼 및 구성 지정

구성 상자에서 빌드할 플랫폼과 구성을 지정할 수 있습니다. 예를 들어 이 상자에 Release|x86을 포함하여 이 빌드를 통해 32비트 버전 C++ 프로젝트의 릴리스 구성만 빌드되도록 지정할 수 있습니다.

코드베이스의 크기가 큰 경우에는 필요한 구성 및 플랫폼만 빌드하여 빌드 처리 속도를 크게 높일 수 있습니다.

구성 상자를 비워 두면 각 솔루션 또는 프로젝트에 정의된 기본 구성 및 플랫폼이 빌드됩니다.

구성 상자에서 줄임표 단추(...)를 선택하여 구성 대화 상자를 열고 사용하여 빌드할 항목을 지정할 수 있습니다. 빌드할 항목을 수동으로 지정할 수도 있습니다.

구성 상자의 각 구성은 다음과 같은 형식이어야 합니다.

구성|플랫폼

자리 표시자를 다음과 같이 바꿔야 합니다.

  • Configuration은 Debug, Release, All Configurations 등의 값입니다.

  • Platform은 Win32, x86, x64, Any CPU 등의 값입니다.

목록의 구성은 쉼표로 구분되어야 합니다.

예를 들어, C# 프로젝트의 디버그 및 릴리스 구성을 모두 빌드하려면 구성 상자에 Debug|Any CPU, Release|Any CPU를 지정합니다.

구성 및 플랫폼에 사용하는 토큰은 솔루션 속성이나 코드 프로젝트 속성에 설정된 토큰과 일치해야 합니다. 토큰이 일치하지 않으면 빌드가 완료될 때 예기치 않은 결과가 나타날 수 있습니다.

참고

솔루션 파일 대신 개별 코드 프로젝트를 빌드하고 Any CPU를 플랫폼으로 지정하는 경우 CPU를 Any CPU 대신 AnyCPU로 지정합니다.

빌드 옵션 지정

여러 빌드 옵션을 제어할 수 있습니다.

수행하려는 작업

설정할 매개 변수

지침

다시 빌드 여부 제어

빌드, 클린 빌드

코드 프로젝트의 코드를 모두 다시 빌드하려면 True로 설정합니다. 이는 MSBuild /target:clean과 같습니다. 이 옵션은 리포지토리 정리False로 설정하지 않으면 실질적인 효과가 없습니다.

이 옵션을 False로 설정하면 큰 코드베이스를 빌드하는 데 필요한 시간을 크게 줄일 수 있습니다.

레이어 다이어그램에 대해 코드 유효성 검사

빌드, 고급, MSBuild 인수

이 매개 변수 값에 /p:ValidateArchitecture=true 문자열을 포함합니다.

자세한 내용은 레이어 다이어그램에 대해 코드 유효성 검사을 참조하십시오.

MSBuild에 전달할 명령줄 인수 지정

빌드, 고급, MSBuild 인수

빌드 프로세스의 요구 사항에 따라 MSBuild에 인수를 전달해야 하는 경우 MSBuild 인수 매개 변수에 해당 인수를 입력합니다. 자세한 내용은 MSBuild 명령줄 참조을 참조하십시오.

빌드를 처리하는 데 사용되는 MSBuild 버전의 비트 지정

빌드, 고급, MSBuild 플랫폼

다음 값 중 하나를 지정합니다.

  • 빌드 에이전트에 설치된 Team Foundation Build Service의 CPU 비트와 동일한 비트의 MSBuild를 실행하려면 Auto를 지정합니다.

  • 이 빌드를 항상 32비트 버전의 MSBuild를 사용하여 처리하려면 X86을 지정합니다.

    Visual Studio는 32비트 응용 프로그램으로 실행되므로 64비트 버전의 Team Foundation Build Service를 실행하는 빌드 에이전트에서 빌드가 처리되는 경우 문제가 발생할 수 있습니다. X86을 지정하면 이러한 유형의 문제를 해결할 수 있습니다.

이 값을 지정할 경우 이 항목 앞부분에서 설명한 것과 같이 태그를 사용하는 등의 방법으로 빌드가 64비트 빌드 컴퓨터에서 호스팅되는 빌드 에이전트에 의해 처리되는지 확인해야 합니다. 그렇지 않으면 빌드가 실패합니다.

기타 프로세스 실행

빌드하는 동안 기타 프로세스를 실행할 수 있습니다.

코드 분석 수행

빌드하는 동안 일반 오류를 찾기 위해 코드를 분석할 수 있습니다. 고급 빌드 매개 변수에서 코드 분석 수행 매개 변수를 설정합니다.

  • 이 기능을 사용하도록 설정된 각 코드 프로젝트를 분석하려면 구성된 대로를 선택합니다.

  • 코드 프로젝트에서 이 기능이 사용되는지 여부에 관계없이 모든 코드 프로젝트를 분석하려면 항상을 선택합니다.

  • 코드 분석을 건너뛰려면 사용 안 함을 선택합니다.

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

서버의 빌드 실행 방법 제어

빌드 서버에서 빌드를 실행하는 방법을 제어할 수 있습니다.

빌드를 처리하는 빌드 에이전트 지정

빌드를 처리하는 데 사용되는 빌드 에이전트를 지정하려면 고급 노드, 에이전트 설정 노드를 차례로 확장하고 다음 매개 변수의 값을 지정합니다.

  • 이름 필터: 이 필드에 에이전트 이름을 입력하여 이 빌드 정의를 처리하는 데 사용되는 빌드 에이전트를 필터링할 수 있습니다. *? 와일드카드 문자를 사용하여 여러 이름을 지정할 수도 있습니다. 예를 들어 이름이 문자 CI로 시작하는 모든 에이전트를 지정하려면 CI*를 지정합니다. 이 조건과 일치하는 에이전트에는 CI, CI1, CI_Agent2 등이 포함됩니다.

  • 태그 필터: 일치하는 태그가 있는 빌드 에이전트에서만 이 빌드를 실행할 수 있도록 하려면 하나 이상의 태그를 지정합니다. 일반적으로 특수 용도로 예약하기 위해 특정 빌드 에이전트에 태그를 적용합니다. 예를 들어 빌드 컴퓨터에 제어된 체크 인 빌드를 처리하도록 디자인된 빌드 에이전트를 설치하고 이 빌드 에이전트에 'gated' 태그를 적용합니다. 그런 다음 'gated' 태그로 지정된 에이전트에 의해서만 빌드가 처리되도록 해당 빌드 정의에 'gated' 태그를 적용합니다. 태그를 지정하려면 줄임표 단추(...)를 선택합니다.

    참고

    이 빌드를 처리하는 데 사용할 수 있는 빌드 에이전트 풀은 이 빌드 정의에 대해 지정한 빌드 컨트롤러에 따라 결정됩니다.빌드 컨트롤러를 수정하려면 빌드 기본값 탭을 선택하고 빌드 컨트롤러 메뉴를 연 다음 빌드 컨트롤러를 선택합니다.

  • 태그 비교 연산자: 메뉴에서 다음 값 중 하나를 선택합니다.

    • MatchExactly: 태그 필터 상자에서 지정한 것과 정확히 같은 태그 집합이 있는 빌드 에이전트만 이 빌드 정의를 처리하도록 하려면 이 값을 선택합니다. 태그를 지정하지 않은 경우 모든 에이전트가 이 빌드 정의를 처리할 수 있습니다.

      MatchExactly를 선택하면 이 빌드 정의에 사용 가능한 에이전트가 태그 필터 필드에 있는 것과 정확히 같은 태그 집합이 있는 에이전트로 제한됩니다.

    • MatchAtLeast: 태그 필터 상자에서 지정한 것과 동일한 태그 집합 이상을 포함한 모든 빌드 에이전트가 이 빌드 정의를 처리하도록 하려면 이 값을 선택합니다. 태그를 지정하지 않은 경우 태그가 없는 에이전트만 이 빌드 정의를 처리할 수 있습니다.

빌드 에이전트 시간 제한 지정

시간 제한을 지정하려면 고급 노드, 에이전트 설정 노드를 차례로 확장하고 다음 표의 매개 변수를 지정합니다.

수행하려는 작업

설정할 매개 변수

지침

빌드 에이전트에서 빌드를 처리하는 데 허용되는 최대 시간 지정

최대 실행 시간

hh:mm:ss 형식으로 시간 범위 값을 입력합니다. 예를 들어 값을 04:30:15로 지정한 경우 4시간 30분 15초가 지난 후에도 빌드 에이전트가 작업을 완료하지 못했으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. 빌드 에이전트에서 빌드를 처리할 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.

빌드 에이전트에 빌드 요청을 할당하는 데 허용되는 최대 시간 지정

최대 대기 시간

hh:mm:ss 형식으로 시간 범위 값을 입력합니다. 예를 들어 값을 01:30:45로 지정한 경우 1시간 30분 45초가 지난 후에도 빌드 에이전트에 빌드가 할당되지 않았으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. 빌드 컨트롤러에서 이 빌드 정의를 처리할 빌드 에이전트를 찾을 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.

빌드 출력 제어

빌드 출력 위치 지정

TFBuild의 빌드 출력 위치를 제어하려면 다음 옵션을 선택합니다.

  • SingleFolder - 모든 빌드 출력 파일을 저장 폴더에 함께 넣습니다.

  • PerProject - 프로젝트 상자에 지정한 코드 프로젝트 또는 각 솔루션에 대한 저장 폴더의 하위 폴더로 빌드 출력을 그룹화합니다.

  • AsConfigured - 개발 컴퓨터에서 Visual Studio로 코드를 빌드할 때와 동일한 폴더 구조로 이진 파일을 빌드 에이전트 소스 폴더에 저장합니다. 이 구조는 코드 프로젝트에서 정의합니다.

    이 옵션을 사용하면 TFBuild가 저장 폴더에 출력을 복사하지 않습니다. 대신, 출력을 TF_BUILD_BINARIESDIRECTOR에서 지정한 위치로 복사하는 스크립트를 프로그래밍하여 스테이징 위치에 저장할 수 있습니다. 빌드 후 또는 테스트 후 스크립트를 참조하십시오.

완료된 빌드의 이름을 팀에 유용하게 설정

사용자와 사용자 팀은 고급, 빌드 번호 형식을 사용하여 유용한 데이터를 완료된 각 빌드의 이름으로 로드할 수 있습니다. 이 매개 변수에 유효한 값은 빌드 번호를 사용하여 완료된 빌드에 의미 있는 이름 지정을 참조하십시오.

빌드에서 기호 게시

기호를 게시할 경로 매개 변수를 지정하여 기록 디버깅과 같은 기능을 사용하는 기호 데이터를 인덱싱하고 게시합니다. 기호 데이터 인덱싱 및 게시을 참조하십시오.

변경 집합, 커밋 및 작업 항목 연결

빌드 프로세스는 완료된 각 빌드를 모든 변경 집합 또는 코드에 포함된 커밋 및 관련 작업 항목에 자동으로 연결합니다. 이 동작을 사용하지 않도록 설정할 수 없지만 고급에서 TrueFalse를 선택하여 빌드 번호로 작업 항목 업데이트 여부를 결정할 수 있습니다.

빌드 프로세스는 변경 집합, 커밋 및 작업 항목을 연결할 시기를 어떻게 결정합니까?

실패 시 작업 항목 만들기

빌드가 실패할 때 빌드 프로세스에서 버그를 만들어 TFVC icon TFVC 변경 집합을 체크 인했거나 Git icon Git 커밋을 푸시한 사람에게 할당하려면 고급, 실패 시 작업 항목 만들기에서 True를 선택합니다.

소스 코드에 레이블 지정

팀에서 완료된 빌드에 각 파일의 어느 버전이 포함되었는지 쉽게 확인할 수 있게 모든 소스 코드 파일에 자동으로 레이블을 표시하려면 TFVC icon TF 버전 제어, 소스에 레이블 지정에서 True를 선택합니다. 이 설정은 Git icon Git 팀 프로젝트에 적용되지 않습니다.

TFBuild가 레이블을 지정할 버전을 결정하는 방법에 대한 자세한 내용은 빌드의 효율성 확인을 참조하세요.

Q & A

Visual Studio Online에서 올바른 기본 Git 빌드 프로세스 템플릿을 사용하고 있는지 확인하는 방법

Visual Studio Online에서 호스트되는 Git icon Git 팀 프로젝트에 연결되어 있나요? 체크 아웃 재정의프로젝트 매개 변수가 누락되었습니까?

세부 정보를 표시하면 **기본 템플릿(GitTemplate.xaml)**이 나타납니까?

The wrong Git default template

그럴 경우, GitTemplate.12.xaml을 선택합니다. 그러면 프로젝트 매개 변수에 체크 아웃 재정의 매개 변수 및 찾아보기 단추가 나타납니다.

The correct Git default template

Q: 빌드 프로세스는 변경 집합, 커밋 및 작업 항목을 연결할 시기를 어떻게 확인합니까?

A: 각 빌드 정의에서는 완료된 다음 빌드와 연결하기 위해 대기 중인 변경 집합(TFVC), 커밋(Git) 및 작업 항목의 레코드를 유지 관리합니다.

예를 들어 변경 집합 382가 빌드 A 및 빌드 B 모두에 의해 빌드되고, 빌드 A가 큐에 대기 중이고 성공적으로 완료되었으며, 빌드 B는 큐에 대기 중이며 실패한 경우, 변경 집합 382는 빌드 A의 성공적으로 완료된 빌드 및 빌드 B의 실패한 상태로 완료된 빌드와 연결됩니다. 변경 집합 382는 빌드 A의 완료된 다음 빌드와 연결되지 않지만 빌드 B의 완료된 다음 빌드와는 연결됩니다.

TFBuild가 자신과 연결할 버전을 결정하는 방법에 대한 자세한 내용은 빌드의 효율성 확인을 참조하세요.

Q: 빌드 프로세스에서 다른 작업을 수행하도록사용자 지정하려면 어떻게 해야 하나요?

A: 프로세스를 사용자 지정합니다.