빌드 번호 사용자 지정
이 항목에서는 업그레이드 템플릿을 사용할 때 빌드 번호를 사용자 지정하는 방법에 대해 설명합니다. 업그레이드 템플릿에 대한 자세한 내용은 업그레이드 템플릿을 사용하여 빌드 정의를 참조하십시오. 기본 템플릿을 사용하면 이 절차를 보다 쉽게 수행할 수 있습니다. 자세한 내용은 기본 템플릿을 사용하여 빌드 정의를 참조하십시오.
빌드하는 동안 실행할 고유의 사용자 지정 작업을 만들어 Team Foundation Build를 사용자 지정할 수 있습니다. 이 항목에서는 빌드 번호를 생성하는 작업을 사용하여 Team Foundation Build 빌드 정의를 사용자 지정하기 위해 따라야 할 단계를 설명합니다.
사전 요구 사항
빌드 번호를 사용자 지정하기 위한 작업을 만들려면 다음 사항이 준비되어 있어야 합니다.
사용자 지정할 빌드 정의의 TFSBuild.proj 파일에 대한 액세스 권한
TFSBuild.proj 파일이 둘 이상의 빌드 정의와 연결되어 있을 수 있습니다. TFSBuild.proj 파일의 소스 제어 위치를 확인하려면 팀 탐색기의 빌드 폴더에서 빌드 정의를 선택하고 마우스 오른쪽 단추를 클릭한 다음 편집을 클릭합니다. TFSBuild.proj 파일의 소스 제어 위치가 빌드 정의 대화 상자의 프로젝트 파일 창에 표시됩니다. 기본적으로 TFSBuild.proj 파일은 Team Foundation 버전 제어의 $/MyTeamProject/TeamBuildTypes/MyBuildName 폴더에 있습니다. MyTeamProject는 팀 프로젝트의 이름이며 모든 팀 프로젝트 소스의 루트 노드입니다. MyBuildName은 TFSBuild.proj 파일과 연결된 첫 번째 빌드 정의에 지정한 이름입니다. Team Foundation Build 빌드 형식을 만드는 방법에 대한 자세한 내용은 기본 빌드 정의 만들기를 참조하십시오.
중요
TFSBuild.proj 파일을 사용자 지정할 때 이 파일과 연결된 각 빌드 정의를 사용자 지정합니다.
팀 프로젝트 파일과 빌드 파일이 포함된 로컬 컴퓨터의 로컬 작업 영역
자세한 내용은 작업 영역 만들기 및 파일 가져오기 및 팀 프로젝트의 소스 가져오기를 참조하십시오.
필요한 권한
이 작업을 수행하려면 빌드 관리 권한과 작업 영역 관리 권한이 허용으로 설정되어 있어야 합니다. 또한 체크 인 권한과 체크 아웃 권한도 허용으로 설정되어 있어야 합니다. 자세한 내용은 Team Foundation Server 권한을 참조하십시오.
빌드 번호 작업 작성
작업을 작성하려면 ITask 인터페이스를 직접 구현하거나 도우미 클래스 Task에서 클래스를 파생시킵니다. ITask는 Microsoft.Build.Framework.dll 어셈블리에 정의되어 있고 Task는 Microsoft.Build.Utilitites.dll 어셈블리에 정의되어 있습니다.
Team Foundation Build에서 생성된 빌드 번호를 사용자 지정하려면 BuildNumberOverrideTarget 대상에 작업을 삽입해야 합니다. BuildNumberOverrideTarget에는 BuildNumber라는 출력 속성이 필요합니다. Output 특성은 이 속성이 사용자 지정 작업의 출력임을 나타냅니다. Team Foundation Build 대상에 대한 자세한 내용은 사용자 지정 가능한 Team Foundation Build 대상을 참조하십시오.
사용자 지정 작업을 작성하려면
사용자 지정 작업이 포함된 MyTask라는 Visual C# 클래스 라이브러리를 만듭니다.
자세한 내용은 구성 요소 클래스를 참조하십시오.
프로젝트 메뉴에서 참조 추가를 클릭하고 참조 추가 대화 상자에서 Microsoft.Build.Framework와 Microsoft.Build.Utilities를 선택합니다.
다음 코드를 class.cs 파일에 삽입합니다.
이 예제에서는 빌드 번호를 생성하기 위해 Task 도우미 클래스에서 클래스를 파생하고 DateTime 속성인 UtcNow와 Ticks를 사용합니다.
using System; using Microsoft.Build.Utilities; using Microsoft.Build.Framework; namespace BuildNumberGenerator { public class BuildNumberGenerator:Task { public override bool Execute() { m_buildNumber = DateTime.UtcNow.Ticks.ToString(); return true; } private string m_buildNumber; [Output] public string BuildNumber { get { return m_buildNumber; } } } }
클래스 라이브러리를 빌드하여 MyTask.dll을 생성합니다.
생성된 DLL을 빌드 정의의 TFSBuild.proj 파일이 포함된 로컬 작업 영역 폴더에 복사합니다.
중요
클라이언트 컴퓨터에 이 디렉터리 구조가 만들어지기 전에 TFSBuild.proj 파일의 소스 제어 위치를 로컬 작업 영역에 매핑했어야 합니다. 자세한 내용은 팀 프로젝트의 소스 가져오기를 참조하십시오.
TFSBuild.proj 파일이 소스 제어의 기본 폴더에 저장되어 있는 경우 파일의 로컬 복사본은 클라이언트 컴퓨터의 <root>:\Local Workspace\TeamBuildTypes\MyBuildName에 있습니다. Local Workspace는 팀 프로젝트가 매핑된 로컬 폴더이고 MyTeamProject는 팀 프로젝트 이름이며 MyBuildName은 TFSBuild.proj 파일과 연결된 첫 번째 빌드 정의에 지정한 이름입니다.
소스 제어에 DLL 파일 추가
사용자 지정 작업이 포함된 DLL을 만들었으면 Team Foundation 버전 제어에 추가해야 합니다. tf add와 tf checkin 명령을 사용하여 빌드 정의의 TFSBuild.proj 파일과 같은 위치에 DLL을 추가하고 체크 인할 수 있습니다. 자세한 내용은 Add 명령 및 Checkin 명령을 참조하십시오.
어셈블리를 추가하고 체크 인하려면
시작을 클릭하고 모든 프로그램, Microsoft Visual Studio 9.0, Visual Studio Tools를 차례로 가리킨 다음 Visual Studio 2008 명령 프롬프트를 클릭합니다. 사용자 지정할 빌드 형식이 포함된 팀 프로젝트에 대해 매핑한 로컬 작업 영역을 엽니다.
예를 들어 명령 프롬프트에 다음을 입력합니다.
> cd c:\MyTeamProject
여기서 MyTeamProject는 팀 프로젝트의 이름입니다.
TFSBuild.proj 파일이 저장되어 있는 위치로 이동합니다.
예를 들어 명령 프롬프트에 다음을 입력합니다.
c:\MyTeamProject>cd TeamBuildTypes\MyBuildName
여기서 MyBuildName은 빌드 정의의 이름입니다.
파일을 Team Foundation 버전 제어에 추가하려면 다음 명령을 입력합니다.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll
파일을 Team Foundation 버전 제어에 체크 인하려면 다음 명령을 입력합니다.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll
팀 탐색기를 사용하여 DLL을 Team Foundation 버전 제어에 추가할 수도 있습니다. 자세한 내용은 파일을 버전 제어에 추가를 참조하십시오.
작업 등록
작업을 만든 후에는 TFSBuild.proj 파일의 UsingTask 요소에 작업을 지정하여 등록해야 합니다. UsingTask 요소는 작업을 작업의 구현이 포함된 어셈블리에 매핑합니다. 자세한 내용은 UsingTask 요소(MSBuild)를 참조하십시오.
TFSBuild.proj 파일을 수정하여 작업을 등록하려면
Visual Studio를 시작합니다.
수정할 TFSBuild.proj 파일을 Team Foundation 버전 제어에서 체크 아웃한 다음 Visual Studio XML 편집기에서 엽니다.
TFSBuild.proj 파일에서 import 문 바로 뒤에 UsingTask 요소를 추가합니다.
<UsingTask TaskName="BuildNumberGenerator.BuildNumberGenerator" AssemblyFile="MyTask.dll"/>
BuildNumberOverrideTarget 대상에 작업을 삽입하려면 <Target></Target> 태그로 묶인 아래의 XML을 TFSBuild.proj 파일의 끝에 추가합니다.
</ItemGroup> <Target Name = "BuildNumberOverrideTarget" > <BuildNumberGenerator> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> </BuildNumberGenerator> </Target> </Project>
파일을 클릭하고 저장을 클릭하여 변경 내용을 저장한 다음 TFSBuild.proj를 닫습니다.
참고
TFSBuild.proj 파일에서 이러한 내용을 변경하면 XML 스키마 경고가 나타납니다. 이러한 경고는 무시해도 됩니다.
TFSBuild.proj를 다시 소스 제어에 체크 인합니다.
TFSBuild.proj 파일을 수정하고 변경 내용을 Team Foundation 버전 제어에 저장했으면 빌드 정의를 실행합니다.
자세한 내용은 큐에 빌드 대기시키기을 참조하십시오.
빌드 탐색기에서 사용자 지정 빌드 번호를 볼 수 있습니다. 자세한 내용은 실행 중인 빌드의 진행률 모니터링을 참조하십시오.