다음을 통해 공유


기본 템플릿을 기반으로 하는 빌드 프로세스 정의

기본 템플릿(DefaultTemplate.11.xaml.1.xaml)을 사용하면 빌드할 코드 프로젝트를 선택하여 기본 빌드를 빠르게 정의할 수 있습니다.이 템플릿을 사용하여 자동화된 테스트 실행 등의 고급 기능을 포함하고 빌드 프로세스의 몇 가지 특성을 팀의 요구 사항에 맞게 조정할 수도 있습니다.

필요한 권한

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

기본 템플릿을 사용하여 빌드 정의를 만들려면

  1. 팀 탐색기에서 다음을 수행합니다.

    1. 작업할 팀 프로젝트에 아직 연결되어 있지 않으면 팀 프로젝트에 연결합니다.

    2. 홈 아이콘을 선택한 후 빌드 아이콘빌드를 선택합니다.

    3. 빌드 페이지에서 새 빌드 정의를 선택합니다.

    새 빌드 정의 창이 나타납니다.

  2. 프로세스 탭빌드 프로세스 템플릿에서 기본 템플릿이 기본적으로 선택되어 있습니다.빌드 프로세스 매개 변수에서 필수 노드를 확장하고 빌드할 솔루션 또는 프로젝트를 하나 이상 지정합니다.

    자세한 내용은 이 항목 뒷부분의 빌드할 프로젝트 지정을 참조하십시오.

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

  4. 프로세스 탭에서 필드를 완료한 후에 다른 탭에서 빌드 프로세스 옵션을 지정합니다.

    자세한 내용은 빌드 정의 만들기를 참조하십시오.

항목 내용

  • 기본 템플릿의 빌드 프로세스 매개 변수 정보

  • 빌드할 프로젝트 지정

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

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

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

  • 자동화된 테스트 실행 및 테스트 영향 분석 사용

  • 기본 빌드 프로세스 매개 변수 지정

  • 고급 빌드 프로세스 매개 변수 지정

기본 템플릿의 빌드 프로세스 매개 변수 정보

이 항목에서는 기본 템플릿을 기반으로 하는 빌드에서 빌드 프로세스 매개 변수를 사용하여 빌드를 정의하는 방법에 대해 설명합니다.이 항목에서는 다음 조건을 충족하는 경우 Visual Studio와 일치해야 하는 기능에 대해 설명합니다.

  • Visual Studio에 포함된 프로세스 템플릿 중 하나에서 만든 팀 프로젝트에서 작업 중입니다.

  • 팀 멤버 중 아무도 DefaultTemplate.11.1.xaml을 제거하거나 사용자 지정하지 않은 경우

빌드할 프로젝트 지정

빌드할 프로젝트 상자에서 빌드할 솔루션 또는 코드를 하나 이상 지정할 수 있습니다.이 상자를 표시하려면 필수 노드와 빌드할 항목 노드를 차례로 확장합니다. 솔루션 또는 프로젝트를 적어도 하나는 지정해야 합니다.

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

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

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

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

중요중요

각 프로젝트 또는 솔루션의 경로는 빌드 정의의 작업 영역 탭에 나열된 소스 제어 폴더 값 중 하나의 자식이어야 합니다.

빌드할 플랫폼 및 구성 지정

빌드할 구성 상자에서 빌드할 플랫폼 및 구성을 지정할 수 있습니다.이 상자를 표시하려면 필수 노드와 빌드할 항목 노드를 차례로 확장합니다. 예를 들어 이 상자에 Release|x86을 포함하여 이 빌드를 통해 32비트 버전 C++ 프로젝트의 릴리스 구성만 빌드되도록 지정할 수 있습니다.

팁

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

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

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

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

구성|플랫폼

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

  • Configuration은 "Debug", "Release" 또는 "All Configurations"와 같은 값입니다.

  • Platform은 "Win32", "x86", "x64" 또는 "Any CPU"와 같은 값입니다.

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

예를 들어 C# 프로젝트의 디버그 구성과 릴리스 구성을 모두 빌드하기로 선택한 경우 빌드할 구성 상자에서 "Debug|Any CPU", "Release|Any CPU"를 지정합니다.

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

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

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

  • 이름 필터: 이 필드에 에이전트 이름을 입력하여 이 빌드 정의를 처리하는 데 사용되는 빌드 에이전트를 필터링할 수 있습니다.*? 와일드카드 문자를 사용하여 여러 개의 이름을 지정할 수도 있습니다.예를 들어 이름이 문자 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으로 지정합니다.

자동화된 테스트 실행 및 테스트 영향 분석

하나 이상의 자동화된 테스트 실행을 수행하고 테스트에 대한 코드 변경 내용의 영향을 분석하도록 빌드를 설계할 수 있습니다.자세한 내용은 빌드 프로세스에서 테스트 실행을 참조하십시오.

기본 빌드 프로세스 매개 변수 지정

보다 일반적인 시나리오를 성공적으로 완료하기 위해 기본 노드의 빌드 프로세스 매개 변수를 수정해야 하는 경우도 있습니다.

수행하려는 작업

설정할 매개 변수

지침

하나 이상의 자동화된 테스트 실행을 시작합니다.

자동화된 테스트

빌드 프로세스에서 테스트 실행

완료된 빌드의 이름을 지정하는 데 사용되는 규칙 사용자 지정

빌드 번호 형식

사용자와 사용자의 팀이 완료된 각 빌드의 이름에 유용한 데이터를 포함할 수 있습니다.자세한 내용은 빌드 번호 사용을 참조하십시오.

이 매개 변수를 사용자 지정하려면 이 필드에 직접 텍스트를 입력합니다.그러나 줄임표 단추(...)를 선택하여 BuildNumber 형식 편집기 대화 상자를 연 다음 사용하여 보다 쉽게 값을 수정하고 사용 가능한 토큰을 표시할 수 있습니다.이 대화 상자에서 사용할 토큰을 표시하고 삽입하려면 매크로를 선택합니다.

빌드를 처리하기 전에 빌드 에이전트의 작업 영역에 대한 정리 여부 및 정리 방식 지정

작업 영역 정리

이 메뉴에서 다음 값 중 하나를 선택합니다.

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

  • 기존 출력을 삭제하지만 가장 최근 빌드 이후 변경되지 않은 소스 코드 파일은 보존하려면(/all 스위치를 사용하지 않고 tf get 수행) 출력을 선택합니다.

  • 기존 출력을 그대로 두고 가장 최근 빌드 이후 변경되지 않은 소스 코드 파일은 보존하려면(/all 스위치를 사용하지 않고 tf get 수행) 없음을 선택합니다.

팁
빌드 프로세스에 모두 옵션이 수행하는 추가 정리가 필요하지 않은 경우 없음(가장 빠른 옵션) 또는 출력을 지정하면 빌드를 실행하는 데 필요한 시간을 크게 줄일 수 있습니다.그러나 팀은 작업 영역이 정리되지 않은 경우 일종의 결함(예: 리팩터링 동안 도입된 결함)을 놓칠 가능성이 있습니다.

빌드 로그의 자세한 정도 지정

로깅의 자세한 정도

빌드 정보는 팀에 중요하지만 너무 많은 정보를 기록하는 빌드 프로세스는 문제를 일으킬 수 있습니다.이러한 문제에는 서버 저장소와 CPU 리소스가 고갈되고 서버 성능이 저하되며 클라이언트 컴퓨터의 빌드 결과 창에서 사용자 환경이 저하되는 문제가 포함될 수 있습니다.배포를 처리하고 저장하고 표시해야 하는 정보의 양을 제어할 수 있습니다.자세한 내용은 빌드 정보 관리 및 자세한 정도 제어를 참조하십시오.

코드를 분석하여 일반적인 오류 찾기

코드 분석 수행

이 메뉴에서 다음 값 중 하나를 선택합니다.

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

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

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

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

기록 디버깅과 같은 기능을 활성화하는 기호 저장

소스 인덱싱기호를 게시할 경로

기록 디버깅과 같은 기능을 활성화하는 기호 데이터를 게시하도록 빌드 정의를 구성할 수 있습니다.자세한 내용은 기호 데이터 게시을 참조하십시오.

고급 빌드 프로세스 매개 변수 지정

고급 노드에 제공되는 빌드 프로세스 매개 변수는 덜 일반적인 시나리오를 성공적으로 완료하기 위해 수정해야 하는 매개 변수입니다.

수행하려는 작업

설정할 매개 변수

지침

빌드 에이전트 설정 지정

에이전트 설정

빌드를 처리하는 빌드 에이전트 지정, 빌드 에이전트 시간 제한 지정

테스트 영향 분석

테스트 영향 분석

빌드 프로세스에서 테스트 실행

완료된 각 빌드를 코드로 이동된 모든 변경 집합 및 연결된 작업 항목과 연결

변경 집합 및 작업 항목 연결

대부분의 경우 가장 좋은 방법은 이 매개 변수를 True(기본값)로 설정하는 것입니다.야간 빌드와 같이 예약된 빌드의 경우에는 성공적으로 완료된 예약된 빌드를 사용하여 수정 내용을 확인하거나 추가 테스트를 실행해야 하는 경우가 종종 있으므로 이 방법이 특히 유용합니다.

각 빌드 정의에서는 완료된 다음 빌드와 연결하기 위해 대기 중인 변경 집합 및 작업 항목의 레코드를 유지 관리합니다.예를 들어 변경 집합 382가 빌드 A 및 빌드 B 모두에 의해 빌드되고,빌드 A가 큐에 대기 중이고 성공적으로 완료되었으며,빌드 B는 큐에 대기 중이며 실패한 경우,변경 집합 382는 빌드 A의 성공적으로 완료된 빌드 및 빌드 B의 실패한 상태로 완료된 빌드와 연결됩니다. 변경 집합 382는 빌드 A의 완료된 다음 빌드와 연결되지 않지만 빌드 B의 완료된 다음 빌드와는 연결됩니다.

빌드가 실패할 경우 작업 항목 만들기

실패 시 작업 항목 만들기

빌드가 실패할 경우 작업 항목을 자동으로 만들려면 이 매개 변수를 True로 설정합니다.

테스트 비활성화

테스트 비활성화

빌드 프로세스에서 테스트 실행

특정 버전의 소스 코드 빌드

버전 가져오기

빌드할 버전을 지정하는 버전 사양을 지정합니다.

버전 사양에 대한 자세한 내용은 명령줄 구문을 참조하십시오.

완료된 각 빌드에 컴파일된 각 파일의 버전에 레이블 지정

소스에 레이블 지정

레이블을 사용하여 모든 소스 코드 파일을 자동으로 표시하려면 이 매개 변수를 True로 설정합니다.이렇게 하면 팀에서 완료된 빌드에 포함된 각 파일의 버전을 쉽게 식별할 수 있습니다.

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

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비트 버전의 MSBuild를 사용하여 처리하려면 X64를 지정합니다.

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

큐에 개인 빌드 대기시키기

개인 저장 위치

일반적으로는 이 매개 변수의 값을 빌드 정의에 지정하지 않습니다.개인 빌드를 큐에 대기시키는 방법에 대한 자세한 내용은 큐에 빌드 대기시키기를 참조하십시오.

솔루션에서 출력 파일 구성

솔루션별 빌드 출력

솔루션으로 출력 파일을 구성하려는 경우 이 매개 변수를 True로 설정합니다.