Team Foundation Build 작업
Team Foundation Build 활동은 Team Foundation Build 시스템에서 빌드 프로세스의 기본 구성 요소입니다. 이러한 활동을 사용하여 사용자 지정 논리 또는 특수 작업 수행과 같은 팀 요구 사항을 충족하기 위해 사용자 지정 빌드 프로세스를 만들 수 있습니다.
대부분의 경우 기본 템플릿(DefaultTemplate.xaml)을 기반으로 사용자 지정 빌드 프로세스 템플릿을 만드는 것이 가장 좋은 방법입니다. 이 방법을 사용하면 이미 만들어진 일반적으로 유용한 기능을 활용하면서 요구 사항을 충족하기 위해 특정 부분을 사용자 지정할 수 있습니다. 이 방법의 또 다른 이점은 이 항목에서 설명하는 활동을 사용하는 방법의 구체적이고 실제적인 예를 볼 수 있다는 것입니다. 빌드 프로세스 템플릿을 만드는 방법에 대한 자세한 내용은 사용자 지정 빌드 프로세스 템플릿 만들기 및 작업을 참조하십시오.
중요
특수 요구 사항을 충족해야 하는 경우에만 사용자 지정 빌드 프로세스를 만들어야 합니다. DefaultTemplate.xaml을 사용하면 다양한 일반적인 요구 사항을 충족하는 빌드 프로세스를 신속하게 정의할 수 있습니다. 자세한 내용은 기본 템플릿을 사용하여 빌드 정의를 참조하십시오.
항목 내용
필요한 권한
활동에 대한 목표 중심 참조
활동에 대한 사전순 참조
필요한 권한
Team Foundation Build 활동을 사용하는 절차를 수행하려면 다음 권한이 허용으로 설정되어 있어야 합니다.
빌드 정의 편집
팀 프로젝트의 BuildProcessTemplates 하위 디렉터리와 같은 관련 버전 제어 디렉터리에 대한 체크 아웃 및 체크 인
큐에 빌드 대기
자세한 내용은 Team Foundation Server 권한을 참조하십시오.
활동에 대한 목표 중심 참조
기본 작업 수행
환경 변수의 값 가져오기
작업 영역에 있는 파일의 경로 가져오기
디렉터리로 작업
빌드 에이전트 작업 디렉터리의 경로 가져오기
작업 영역에 없는 파일 다운로드
파일 찾기
빌드 로그에 경고, 오류, 메시지 및 기타 데이터 기록
데이터 웨어하우스에 빌드 메타데이터 기록
빌드 프로세스 제어
빌드 에이전트에서 활동 실행
명명된 뮤텍스 구조를 사용하여 스레드로부터 안전한 프로세스 구현
이유(트리거)를 기반으로 빌드 프로세스의 섹션 제한
기타 작업 컴파일, 테스트 및 수행
MSBuild를 사용하여 이진 파일 컴파일, 코드 분석 실행 및 기타 작업 수행
MSTest를 사용하여 테스트 실행
빌드의 영향을 받는 테스트의 목록 가져오기
프로세스 시작
버전 제어 작업
변경 집합 및 작업 항목을 빌드와 연결
제어된 변경 내용 체크 인
체크 인 정책 평가
버전 제어에서 파일에 레이블 지정
작업 항목으로 작업
변경 집합 및 작업 항목을 빌드와 연결
작업 항목 만들기
기호 데이터로 작업
.pdb 파일의 기호 데이터에 버전 제어 경로 및 버전 포함
SymStore 기호 저장소에 기호 게시
유용한 개체에 대한 참조 가져오기
팀 프로젝트 컬렉션의 개체에 대한 참조 가져오기
빌드 에이전트의 개체에 대한 참조 가져오기
빌드 정보의 개체에 대한 참조 가져오기
빌드 환경의 개체에 대한 참조 가져오기
활동에 대한 사전순 참조
AgentScope
AssociateChangesetsAndWorkItems
CheckInGatedChanges
ConvertWorkspaceItem
ConvertWorkspaceItems
CopyDirectory
CreateDirectory
CreateWorkspace
DeleteDirectory
DeleteWorkspace
DownloadFile
DownloadFiles
EvaluateCheckInPolicies
ExpandEnvironmentVariables
FindMatchingFiles
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetImpactedTests
GetTeamProjectCollection
GetWorkspace
IndexSources
InvokeForReason
InvokeProcess
LabelSources
LabelWorkspace
MSBuild
MSTest
OpenWorkItem
PublishSymbols
RevertWorkspace
SetBuildProperties
SharedResourceScope
SyncWorkspace
TfsBuild
UpdateBuildNumber
WriteBuildError
WriteBuildInformation<T>
WriteBuildMessage
WriteBuildWarning
기본 작업 수행
Team Foundation Build 활동을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
환경 변수의 값 가져오기
작업 영역에 있는 파일의 경로 가져오기
디렉터리로 작업
빌드 에이전트 작업 디렉터리의 경로 가져오기
작업 영역에 없는 파일 다운로드
파일 찾기
빌드 로그에 경고, 오류, 메시지 및 기타 데이터 기록
빌드에 대한 메타데이터 기록
환경 변수의 값 가져오기(ExpandEnvironmentVariables 활동)
ExpandEnvironmentVariables 활동을 사용하여 빌드 서버의 환경 변수를 하나 이상 확인할 수 있습니다. 이 활동이 AgentScope 시퀀스 안에 있으면 빌드 에이전트에서 환경 변수를 읽고, 그렇지 않으면 빌드 컨트롤러에서 환경 변수를 읽습니다.
ExpandEnvironmentVariables Result(String) 속성
작업의 결과를 반환합니다. 예를 들어 The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.를 반환합니다.
ExpandEnvironmentVariables 인수 속성
Input(String): 확인할 환경 변수가 포함된 문자열을 지정해야 합니다. Windows 백분율 기호 표기법을 사용하는 대신 MSBuild 속성을 지정하여 각 환경 변수의 형식을 지정해야 합니다. 예를 들어 "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."를 지정할 수 있습니다.
AdditionalVariables(IDictionary<TKey, TValue><String,String>): 해당 값으로 확인할 추가 변수(키)가 포함된 IDictionary 개체를 지정할 수 있습니다.
맨 위로 이동
작업 영역에 있는 파일의 경로 가져오기
각 빌드에는 빌드 정의의 작업 영역 탭에 정의된 버전 제어 작업 영역이 있습니다. 작업 영역은 소스 코드 파일에 대한 액세스 권한과 버전 제어 시스템에서 필요로 하는 다른 모든 파일에 대한 액세스 권한을 빌드에 제공합니다. Team Foundation Build에서는 빌드 작업 영역에서 파일로 작업하는 데 사용할 수 있는 ConvertWorkspaceItem 및 ConvertWorkspaceItems 활동을 제공합니다.
빌드 작업 영역에 대한 자세한 내용은 기본 빌드 정의 만들기를 참조하십시오.
팁
일반적인 시나리오에서 ConvertWorkspaceItem 활동을 사용하는 방법에 대한 자세한 단계별 지침은 빌드 시스템에서 이진 파일을 배치하는 위치 제어를 참조하십시오.
작업 영역에 있는 파일의 경로 가져오기(ConvertWorkspaceItem 활동)
ConvertWorkspaceItem 활동을 사용하여 서버 경로를 빌드 에이전트의 로컬 경로로 변환하거나 빌드 에이전트의 로컬 경로를 서버 경로로 변환할 수 있습니다.
ConvertWorkspaceItem Result(String) 속성
변환된 경로를 반환합니다.
ConvertWorkspaceItem 인수 속성
Input(String): 변환할 경로 값을 제공해야 합니다.
Workspace(Workspace): 파일이 포함된 Workspace에 대한 참조를 제공해야 합니다. 대부분의 경우 CreateWorkspace 활동의 Result 속성에서 초기화하는 변수로 이 속성을 설정해야 합니다. DefaultTemplate.xaml을 기반으로 하는 빌드 프로세스를 만드는 경우 Workspace 변수를 사용해야 할 수 있습니다.
방향
서버 경로를 로컬 경로로 변환: Direction 속성에서 ServerToLocal을 선택한 다음 Input(String) 속성에서 서버에 있는 파일의 경로를 지정합니다.
예를 들어 팀에서 $/OurTeam/BuildProcess/Util 디렉터리에 공통 유틸리티를 저장할 수 있습니다. 이진 파일이 컴파일된 후 ScanBinaries.exe 유틸리티를 실행하는 사용자 지정 빌드 프로세스를 만들 수 있습니다. $/OurTeam/BuildProcess/Util이 빌드 정의의 작업 영역 탭에서 매핑된 경우 Input 속성에 $/OurTeam/BuildProcess/Util/ScanBinaries.exe를 지정하여 Result(String) 속성에서 유틸리티의 로컬 경로를 가져올 수 있습니다.
로컬 경로를 서버 경로로 변환: Direction 속성에서 ServerToLocal을 선택한 다음 Input 속성에서 빌드 에이전트에 있는 파일의 로컬 경로를 지정합니다.
작업 영역에 있는 여러 파일의 경로 가져오기(ConvertWorkspaceItems 활동)
ConvertWorkspaceItems 활동을 사용하여 여러 서버 경로를 빌드 에이전트의 여러 로컬 경로로 변환하거나 빌드 에이전트의 여러 로컬 경로를 여러 서버 경로로 변환할 수 있습니다.
ConvertWorkspaceItems Result(IList<String>) 속성
변환된 경로 값을 반환합니다.
ConvertWorkspaceItems 인수 속성
Input(IEnumerable<T><String>): 변환할 여러 경로 값을 제공해야 합니다.
Workspace(Workspace): 여러 파일이 포함된 Workspace에 대한 참조를 제공해야 합니다. 대부분의 경우 CreateWorkspace 활동의 Result 속성에서 초기화하는 변수로 이 속성을 설정해야 합니다.
팁
DefaultTemplate.xaml을 기반으로 하는 빌드 프로세스를 만드는 경우 Workspace 변수를 사용해야 할 수 있습니다.
Direction: 다음 값 중 하나를 선택합니다.
Input 속성에서 서버 경로 값의 컬렉션을 지정하고 Result 속성이 로컬 경로 값의 목록을 반환하도록 하려면 ServerToLocal을 선택합니다.
Input 속성에서 로컬 경로 값의 컬렉션을 지정하고 Result 속성이 서버 경로 값의 목록을 반환하도록 하려면 LocalToServer를 선택합니다.
디렉터리로 작업
Team Foundation Build에서 몇 가지 활동을 사용하여 디렉터리로 작업할 수 있습니다.
팁
빌드의 버전 제어 작업 영역에 속한 디렉터리로 작업해야 하는 경우 작업 영역 활동을 대신 사용해야 합니다. 자세한 내용은 작업 영역에 있는 여러 파일의 경로 가져오기를 참조하십시오.
디렉터리 만들기(CreateDirectory 활동)
CreateDirectory 활동을 사용하여 Directory(String) 속성에 지정하는 이름을 가진 디렉터리를 만들 수 있습니다.
디렉터리 복사(CopyDirectory 활동)
CopyDirectory 활동을 사용하여 Source(String) 속성에 지정하는 디렉터리의 모든 콘텐츠를 Destination(String) 속성에 지정하는 다른 디렉터리에 재귀적으로 복사할 수 있습니다. Destination 속성에 지정하는 디렉터리가 이미 있어야 합니다. 빈 디렉터리나 하위 디렉터리는 복사되지 않습니다.
디렉터리 삭제(DeleteDirectory 활동)
DeleteDirectory 활동을 사용하여 Directory(String) 속성에 지정하는 이름을 가진 디렉터리를 삭제할 수 있습니다. 삭제할 디렉터리에 하위 디렉터리가 포함된 경우 Recursive(Boolean) 속성을 True로 설정해야 합니다. 이렇게 하지 않으면 빌드가 실패합니다.
빌드 에이전트 작업 디렉터리의 경로 가져오기(GetBuildDirectory 활동)
GetBuildDirectory 활동을 사용하여 Result(String) 속성에서 빌드 에이전트 작업 디렉터리의 리터럴 경로를 가져올 수 있습니다. 이 활동은 AgentScope 활동 안에서만 사용할 수 있습니다.
맨 위로 이동
작업 영역에 없는 파일 다운로드
DownloadFiles 활동을 사용하여 파일을 하나 이상 다운로드할 수 있습니다. DownloadFile 활동은 무시하십시오.
DownloadFiles 활동
DownloadFiles 활동을 사용하여 버전 제어에서 파일을 하나 이상 다운로드할 수 있습니다.
팁
다운로드할 파일이 빌드 작업 영역에 있는 경우 ConvertWorkspaceItem 활동을 사용하여 파일에 액세스해야 할 수 있습니다.
DownloadFiles 인수 속성
LocalPath(String): 다음과 같이 값을 지정해야 합니다.
단일 파일을 다운로드하는 경우 다운로드할 파일의 로컬 복사본에 대한 로컬 경로와 로컬 복사본에 제공할 이름을 지정합니다(예: "c:\Docs\readme.txt").
여러 파일을 다운로드하는 경우 파일을 다운로드할 디렉터리의 로컬 경로를 지정합니다(예: "c:\Docs\").
ServerPath(String): 다음과 같이 값을 지정해야 합니다.
단일 파일을 다운로드하는 경우 다운로드할 파일의 서버 경로와 이름을 지정합니다(예: "$/Docs/readme.txt").
여러 파일을 다운로드하는 경우 다운로드할 파일이 포함된 디렉터리의 서버 경로를 지정합니다(예: "$/Docs/").
Recursion(RecursionType):
OneLevel: ServerPath 속성에 지정하는 디렉터리의 파일을 하나 이상 다운로드합니다.
Full: ServerPath 속성에 지정하는 디렉터리의 파일과 모든 하위 디렉터리의 파일을 모두 다운로드합니다.
Version(String): 버전 사양을 지정할 수 있습니다. 현재 버전을 다운로드하려면 이 속성을 Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString으로 설정된 상태로 둡니다. 버전 사양에 대한 자세한 내용은 명령줄 구문(버전 제어)을 참조하십시오.
DeletionID(Int32): 버전 제어에서 삭제된 파일을 다운로드하는 경우에만 이 속성을 지정해야 합니다. 명령 프롬프트에서 tf dir /deleted를 입력하여 대화형으로 이 값을 가져올 수 있습니다. 자세한 내용은 Dir 명령을 참조하십시오. 그러나 Team Foundation Build에서는 DeletionID를 구하는 기본 제공 활동을 제공하지 않습니다. 이 속성을 사용하려면 이 기능을 제공하는 사용자 지정 활동을 구하거나 만들어야 합니다.
맨 위로 이동
DownloadFile 활동
DownloadFile 활동은 무시하십시오. DownloadFiles 활동이 파일을 하나 이상 다운로드하는 가장 쉬운 방법입니다.
파일 찾기(FindMatchingFiles 활동)
FindMatchingFiles 활동을 사용하여 파일을 찾을 수 있습니다. MatchPattern(String) 속성에 검색 조건을 지정합니다. 이 속성에서 다음 요소가 포함된 인수를 지정할 수 있습니다.
Directory GetFiles(String, String) 메서드의 searchPattern 인수가 지원하는 구문
재귀 검색을 지정하는 ** 예를 들면 다음과 같습니다.
소스 디렉터리에서 텍스트 파일을 검색하려면 MatchPattern 속성에 String.Format("{0}\**\*.txt", SourcesDirectory)과 유사한 값을 지정할 수 있습니다.
소스 디렉터리에서 txtfiles라는 하나 이상의 하위 디렉터리에 있는 텍스트 파일을 검색하려면 MatchPattern 속성에 String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory)과 유사한 값을 지정할 수 있습니다.
Result(IEnumerable<T><String>) 속성에서 작업의 결과를 수집합니다.
빌드 로그에 경고, 오류, 메시지 및 기타 데이터 기록
WriteBuildMessage 활동
WriteBuildMessage 활동을 사용하여 빌드 로그에 정보 메시지를 기록할 수 있습니다. Message(String) 속성에 메시지를 지정해야 합니다. Importance 속성(BuildMessageImportance)의 값을 수정하여 메시지의 중요도를 나타낼 수도 있습니다.
팁
-
빌드 프로세스의 사용자는 표시되어야 하는 것과 웨어하우스에 저장되는 데이터의 측면에서 정보 오버로드를 줄이는 데 자세한 정도 필터링을 사용할 수 있습니다. 빌드 메시지의 Importance 속성을 설정하는 신중하고 일관성 있는 방법을 사용하여 이 필터링을 보다 효과적으로 만들 수 있습니다. 자세한 내용은 빌드 정보 관리 및 자세한 정도 제어를 참조하십시오.
-
기본 설정을 사용하는 경우 메시지가 빌드 로그에 기록되지 않습니다. 이 문제를 해결하려면 다음 단계 중 하나를 수행합니다.
-
WriteBuildMessage Importance 속성을 Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High로 설정합니다.
-
빌드 정의의 프로세스 탭에서 로깅의 자세한 정도 프로세스 매개 변수를 Detailed 또는 Diagnostic으로 설정합니다.
-
WriteBuildWarning 활동
WriteBuildWarning 활동을 사용하여 빌드 로그에 경고 메시지를 기록할 수 있습니다. 경고는 빌드 결과 창에 노란색 느낌표와 함께 나타납니다. Message(String) 속성에 메시지를 지정해야 합니다.
빌드 경고는 팀에서 자세한 정도를 최소 이상으로 설정하는 경우에만 기록됩니다. 자세한 내용은 빌드 정보 관리 및 자세한 정도 제어를 참조하십시오.
WriteBuildError 활동
WriteBuildError 활동을 사용하여 빌드 로그에 오류 메시지를 기록할 수 있습니다. 오류는 빌드 결과 창에 빨간색 느낌표와 함께 나타납니다. 오류가 빌드 로그에 기록되는 경우 빌드는 잘해야 Partially Succeeded로 분류됩니다. Message(String) 속성에 메시지를 지정해야 합니다.
빌드 오류는 자세한 정도 설정과 관계없이 항상 기록됩니다. 자세한 내용은 빌드 정보 관리 및 자세한 정도 제어를 참조하십시오.
WriteBuildInformation<T> 활동
WriteBuildInformation<T> 활동을 사용하여 빌드 로그에 개체를 삽입할 수 있습니다. 사용자가 빌드 결과 창에서 로그를 볼 때 개체는 리플렉션을 사용하여 렌더링됩니다.
WriteBuildInformation<T> 인수 속성
Value(Object): 빌드 로그에 삽입할 개체를 지정해야 합니다. 개체가 빌드 결과 창에 렌더링되려면 개체가 IBuildInformationNode를 구현하고 Type을 다음 InformationTypes 값 중 하나로 설정해야 합니다.
ActivityProperties
ActivityTracking
AgentScopeActivityTracking
BuildError
BuildMessage
BuildProject
BuildStep
BuildWarning
ExternalLink
OpenedWorkItem
ParentToBuildDetail: 이 개체의 부모를 이 활동의 부모로 만들려면 False를 지정하고, 부모를 IBuildDetail 개체로 만들려면 True를 지정합니다.
이 속성의 효과 중 하나는 정보가 빌드 결과 창에 나타나는 방식입니다. False를 지정하면 정보가 들여쓰기되고 WriteBuildInformation<T> 활동 전후에 있고 같은 수준에 있는 다른 활동의 출력에 맞춰집니다. True를 지정하면 정보가 들여쓰기되지 않습니다.
맨 위로 이동
데이터 웨어하우스에 메타데이터 기록
데이터 웨어하우스에 빌드에 대한 메타데이터를 기록할 수 있습니다.
빌드 번호 기록(UpdateBuildNumber 활동)
빌드에 대한 주요 데이터 요소 기록(SetBuildProperties 활동)
팁
이러한 활동이 기록할 메타데이터를 지원하지 않는 경우 GetBuildDetail 활동을 사용하여 IBuildDetail 개체에 대한 참조를 가져온 다음 이 참조를 사용하여 데이터를 개체에 직접 할당할 수 있습니다.
빌드 번호 기록(UpdateBuildNumber 활동)
UpdateBuildNumber 활동을 사용하여 빌드의 빌드 번호(또는 이름)를 설정할 수 있습니다. 이 활동은 다음 단계를 수행합니다.
빌드 번호 형식을 결정하는 식을 기반으로 빌드 번호를 생성합니다. 빌드 프로세스는 일반적으로 빌드 정의의 프로세스 탭에 있는 매개 변수가 제공하는 워크플로 인수에서 이 식을 받아들입니다.
결과 값을 BuildNumber 속성에 기록하여 빌드의 빌드 번호(또는 이름)를 설정합니다.
UpdateBuildNumber Result(String) 속성
Result: 새 BuildNumber 값을 반환합니다.
UpdateBuildNumber 속성
맨 위로 이동
빌드에 대한 주요 데이터 요소 기록(SetBuildProperties 활동)
SetBuildProperties를 사용하여 데이터 웨어하우스에서 각 빌드에 대한 데이터의 저장소를 관리하는 IBuildDetail 개체에 주요 데이터 요소를 기록할 수 있습니다. 이 데이터의 상당 부분이 빌드 결과 창에서 사용자에게 표시됩니다.
SetBuildProperties 속성
PropertiesToSet: 설정할 속성의 이름에 대한 확인란을 선택해야 합니다.
BuildNumber(String): 빌드의 이름으로 간주할 수 있는 빌드의 BuildNumber를 설정할 수 있습니다.
팁
빌드 정의의 프로세스 탭에서 사용자가 지정한 설정을 기반으로 이 값을 설정하려면 이 속성 대신 UpdateBuildNumber 활동을 사용해야 할 수 있습니다.
CompilationStatus(BuildPhaseStatus): 컴파일 상태(CompilationStatus)를 설정할 수 있습니다. MSBuild 활동도 이 값을 자동으로 설정합니다.
DropLocation(String): DropLocation 속성에 저장 위치를 기록할 수 있습니다.
참고
이 속성을 설정하는 경우 저장 위치를 실제로 만드는 것이 아니라 일반적으로 CreateDirectory 활동을 사용하여 만드는 저장 폴더의 위치를 데이터 웨어하우스에 저장하게 됩니다.
KeepForever(Boolean): 빌드 정의의 보존 정책 탭에 있는 설정을 우회하고 완료된 빌드를 무기한 유지하려면 KeepForever 속성을 True로 설정합니다.
LabelName(String): LabelName 속성을 설정하여 버전 제어에서 소스 코드 파일에 대해 이 빌드를 표시하는 데 사용한 레이블을 기록할 수 있습니다. 일반적으로 LabelWorkspace 활동의 Name 속성 값과 일치하도록 이 속성을 설정합니다.
중요
Team Foundation Build에서는 변경 집합 및 작업 항목을 빌드와 연결하기 위해 이 데이터가 필요합니다. 이 데이터를 제공하지 않는 경우 AssociateChangesetsAndWorkItems 활동이 실패합니다.
LogLocation(String): LogLocation 속성을 사용하여 빌드 프로세스가 로그 파일을 배치하는 폴더에 대한 UNC 파일 경로를 기록할 수 있습니다.
참고
사용자 지정 빌드 프로세스에서는 이 속성을 사용할 필요가 없을 수 있습니다. 이 속성은 레거시 빌드 프로세스를 지원하기 위해 UpgradeTemplate.xaml 파일에서 주로 사용됩니다.
SourceGetVersion(String): SourceGetVersion 속성을 사용하여 이 빌드에 대한 소스가 검색되는 버전 사양을 기록할 수 있습니다.
Status(BuildStatus): Status 속성에 빌드의 전반적인 상태를 기록할 수 있습니다. 예를 들어 이 속성을 사용하여 빌드의 성공 여부를 나타낼 수 있습니다.
TestStatus(BuildPhaseStatus): TestStatus 속성을 사용하여 이 빌드에서 실행된 테스트의 전반적인 상태를 기록할 수 있습니다. 예를 들어 이 속성을 사용하여 이 빌드에서 실행한 테스트의 성공 여부를 나타낼 수 있습니다.
맨 위로 이동
빌드 프로세스 제어
Team Foundation Build 활동을 사용하여 다음과 같이 빌드 프로세스를 제어할 수 있습니다.
빌드 에이전트에서 활동 실행
명명된 뮤텍스 구조를 사용하여 스레드로부터 안전한 프로세스 구현
이유(트리거)를 기반으로 빌드 프로세스의 섹션 제한
빌드 에이전트에서 활동 실행(AgentScope 활동)
AgentScope 활동을 사용하여 빌드 에이전트에서 실행할 빌드 프로세스의 부분을 묶을 수 있습니다.
AgentScope 인수 속성
에이전트 선택
MaxWaitTime(TimeSpan): 빌드 프로세스에서 빌드 에이전트를 사용할 수 있게 될 때까지 기다리는 최대 시간을 지정할 수 있습니다. hh:mm:ss 형식으로 값을 입력할 수 있습니다. 예를 들어 값을 01:30:45로 지정한 경우 1시간 30분 45초가 지난 후에도 빌드 에이전트에 빌드가 할당되지 않았으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. 빌드 컨트롤러에서 이 빌드 정의를 처리할 빌드 에이전트를 찾을 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.
중요
MaxWaitTime 속성에 0이 아닌 적절한 값을 지정하여 빌드 큐의 백업을 방지할 수 있습니다.
ReservationSpec(AgentReservationSpec): 이 활동에 포함된 활동을 처리할 빌드 에이전트의 종류를 제한할 수 있습니다. 예를 들어 특정 태그가 있는 빌드 에이전트만 AgentScope 활동 내의 활동을 처리하는 데 사용되도록 지정할 수 있습니다.
실행
MaxExecutionTime(TimeSpan): 이 AgentScope 활동이 완료되기 위해 허용되는 최대 시간을 지정할 수 있습니다. hh:mm:ss 형식으로 값을 입력할 수 있습니다. 예를 들어 값을 04:30:15로 지정한 경우 4시간 30분 15초가 지난 후에도 빌드 에이전트가 작업을 완료하지 못했으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. 빌드 에이전트에서 빌드를 처리할 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.
팁
MaxExecutionTime 속성에 0이 아닌 적절한 값을 지정하여 빌드 큐의 백업을 방지할 수 있습니다.
범위
- DataToIgnore: 이 속성은 무시하십시오.
맨 위로 이동
명명된 뮤텍스 구조를 사용하여 스레드로부터 안전한 프로세스 구현(SharedResourceScope 활동)
SharedResourceScope 활동을 사용하여 명명된 뮤텍스(상호 제외) 구조를 구현할 수 있습니다. 이 활동 안에 배치하는 빌드 프로세스의 세그먼트는 "스레드로부터 안전"합니다.
이 활동은 한 번에 한 프로세스만 액세스해야 하는 공유 리소스에 액세스해야 하는 빌드 프로세스의 부분을 묶는 데 일반적으로 사용됩니다. 예를 들어 빌드에서 파일 공유의 단일 텍스트 파일에 순차적으로 기록하게 할 수 있습니다. 이러한 종류의 프로세스가 올바르게 작동하도록 하려면 SharedResourceScope 활동 안에 프로세스를 구현해야 합니다.
DefaultTemplate.xaml에서 PublishSymbols 활동의 호출이 SharedResourceScope 활동에 포함된 또 다른 예를 찾을 수 있습니다.
시퀀스(Sequence) >
에이전트에서 실행(AgentScope) >
변경 집합과 작업 항목 컴파일, 테스트 및 연결 시도(TryCatch [Try]) >
시퀀스(Sequence) >
영향을 받는 테스트 가져오기, 소스 인덱싱 및 기호 게시(Parallel) >
If SourceAndSymbolServerSettings.IndexSources Or SourceAndSymbolServerSettings.HasSymbolStorePath(If [Then]) >
트리거된 빌드에 대해 소스 인덱싱 및 기호 게시(InvokeForReason) >
If SourceAndSymbolServerSettings.HasSymbolStorePath(If [Then]) >
기호 게시 시도(TryCatch [Try]) >
기호 저장소에 대한 액세스 동기화(SharedResourceScope) >
기호 게시(PublishSymbols)
이 구조를 탐색하는 방법에 대한 자세한 내용은 복잡한 Windows Workflow에서 탐색을 참조하십시오.
SharedResourceScope 인수 속성
ResourceName(String): 값을 지정해야 합니다. SharedResourceScope 활동의 모든 인스턴스는 서로 다른 빌드 정의 템플릿에 있는 경우에도 팀 프로젝트 컬렉션에서 동일한 ResourceName 값을 갖고 있으면 한 번에 하나씩 실행됩니다.
MaxExecutionTime(TimeSpan): SharedResourceScope 활동이 완료되기 위해 허용되는 최대 시간을 지정할 수 있습니다. hh:mm:ss 형식으로 값을 입력할 수 있습니다. 예를 들어 값을 04:30:15로 지정한 경우 4시간 30분 15초가 지난 후에도 SharedResourceScope 활동이 완료되지 않았으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. SharedResourceScope 활동을 처리할 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.
팁
MaxExecutionTime 속성에 0이 아닌 적절한 값을 지정하여 빌드 큐의 백업을 방지할 수 있습니다.
MaxWaitTime(TimeSpan): 빌드 프로세스에서 SharedResourceScope 활동을 처리하기 위해 큐에서 기다리는 최대 시간을 지정할 수 있습니다. hh:mm:ss 형식으로 값을 입력할 수 있습니다. 예를 들어 값을 01:30:45로 지정한 경우 1시간 30분 45초가 지난 후에도 SharedResourceScope 활동이 처리되지 않았으면 시간 초과 오류가 발생하면서 빌드가 실패합니다. 빌드 프로세스가 큐에 대기할 수 있는 시간에 제한을 두지 않으려면 값을 00:00:00으로 지정합니다.
팁
MaxWaitTime 속성에 0이 아닌 적절한 값을 지정하여 빌드 큐의 백업을 방지할 수 있습니다.
맨 위로 이동
이유(트리거)를 기반으로 빌드 프로세스의 섹션 제한(InvokeForReason 활동)
InvokeForReason 활동을 사용하여 특정 이유로 실행된 빌드에서만 실행할 빌드 프로세스의 세그먼트를 묶을 수 있습니다. 일반적으로 빌드 이유는 사용자가 빌드 정의의 트리거 탭에서 선택하는 트리거에 의해 설정됩니다. Reason 속성에서 허용할 이유 값을 하나 이상 지정할 수 있습니다. 자세한 내용은 빌드 트리거 및 이유 지정을 참조하십시오.
맨 위로 이동
기타 작업 컴파일, 테스트 및 수행
Team Foundation Build 활동을 사용하여 이진 파일을 컴파일하고, 테스트를 실행하고, 기타 작업을 수행할 수 있습니다.
MSBuild를 사용하여 이진 파일 컴파일, 코드 분석 실행 및 기타 작업 수행
MSTest를 사용하여 테스트 실행
이 빌드의 영향을 받는 테스트의 목록 가져오기
MSBuild를 사용하여 이진 파일 컴파일, 코드 분석 실행 및 기타 작업 수행(MSBuild 활동)
MSBuild 활동을 사용하여 이진 파일을 컴파일하고, 코드 분석을 실행하고, MSBuild에서 제공하는 다른 모든 기능을 활용할 수 있습니다.
MSBuild 결과
이 활동의 속성은 결과를 반환하지 않습니다. 그러나 이 활동은 컴파일 오류가 기록된 경우 CompilationStatus를 Failed로 설정합니다.
MSBuild 인수 속성
AdditionalVCOverrides(String): GenerateVsPropsFile을 True로 설정하면 이 속성의 내용이 생성된 .vsprops 파일에 포함됩니다.
CommandLineArguments(String): MSBuild에 전달할 명령줄 인수를 지정할 수 있습니다.
Configuration(String): 빌드할 구성을 지정할 수 있습니다. 예를 들어 “debug” 또는 “release”를 지정할 수 있습니다.
GenerateVSPropsFile(Boolean): 이 속성이 True로 설정되면 MSBuild에서는 C++ 프로젝트에 전달할 표준 .vsprops 파일을 생성합니다. 이 파일에는 C++ 프로젝트의 출력 디렉터리와 AdditionalVCOverrides 속성에 지정하는 값이 포함됩니다.
LogFile(String): MSBuild에서 만들 로그 파일의 이름을 지정할 수 있습니다.
LogFileDropLocation(String): MSBuild에서 로그 파일을 저장할 디렉터리에 대한 정규화된 UNC 경로를 지정할 수 있습니다.
MaxProcesses(Int32): MSBuild에서 만드는 최대 프로세스 수를 지정할 수 있습니다.
OutDir(String): MSBuild에서 컴파일된 이진 파일을 저장하는 디렉터리를 지정할 수 있습니다. 자세한 내용은 빌드 시스템에서 이진 파일을 배치하는 위치 제어를 참조하십시오.
Platform(String): MSBuild에서 빌드하는 플랫폼을 지정할 수 있습니다. 예를 들면 “Any CPU”, “x86” 또는 “x64”를 지정할 수 있습니다.
Project(String): MSBuild에서 빌드하는 솔루션이나 코드 프로젝트를 지정할 수 있습니다.
ResponseFile(String): MSBuild에서 사용하는 응답 파일을 지정할 수 있습니다.
RunCodeAnalysis(CodeAnalysisOption): 코드 분석이 항상 실행될지, 실행되지 않을지, 프로젝트 설정에 따라 실행될지를 지정할 수 있습니다.
Targets(IEnumerable<T><String>): 빌드할 대상을 지정할 수 있습니다.
TargetsNotLogged(IEnumerable<T><String>): ProjectStarted 이벤트가 기록되지 않아야 하는 대상을 지정할 수 있습니다.
ToolPath(String): 도구의 경로를 지정할 수 있습니다.
ToolPlatform(ToolPlatform): 도구의 플랫폼을 지정할 수 있습니다. 현재 운영 체제에 따라 플랫폼을 검색하려면 Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto를 지정합니다.
Verbosity(BuildVerbosity): MSBuild에서 생성하는 로그의 자세한 정도를 지정할 수 있습니다.
MSBuild 속성이 영향을 미치는 다양한 MSBuild 옵션에 대한 자세한 내용은 MSBuild 명령줄 참조를 참조하십시오.
맨 위로 이동
테스트 실행(MSTest 활동)
이 활동을 사용하여 MSTest.exe를 통해 테스트를 실행할 수 있습니다.
핵심 MSTest 속성
시작하려면 테스트를 실행할 방법을 결정한 다음 적절한 속성의 값을 지정합니다.
테스트 컨테이너에서 테스트를 실행하려면(권장되는 방법) 다음 속성을 사용합니다.
TestContainers(IEnumerable<String>): 실행할 테스트의 테스트 컨테이너를 지정해야 합니다. 이 속성은 MSTest.exe 명령의 /testcontainer 옵션과 동일합니다. 자세한 내용은 /testcontainer을 참조하십시오.
SearchPathRoot(String): 테스트 컨테이너와 해당 종속성을 검색할 디렉터리 경로의 루트를 지정할 수 있습니다. 값을 지정하지 않는 경우 MSTest 활동은 일반적인 위치에서 파일을 찾으려고 시도합니다.
TestSettings(String): 사용할 테스트 실행 구성 파일을 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /testsettings 옵션과 동일합니다. 자세한 내용은 /testsettings을 참조하십시오.
테스트 목록의 테스트를 실행하려면 다음 속성을 사용합니다.
TestLists(IEnumerable<String>): 실행할 테스트 목록을 지정해야 합니다. 이 속성은 MSTest.exe 명령의 /testlist 옵션과 동일합니다. 자세한 내용은 /testlist 및 테스트 목록을 정의하여 테스트 그룹화를 참조하십시오.
TestMetadata(String): 실행할 테스트 목록이 포함된 메타데이터 파일을 지정해야 합니다. 이 속성은 MSTest.exe 명령의 /testmetadata 옵션과 동일합니다. 자세한 내용은 /testmetadata을 참조하십시오.
MSTest 필터링 속성
다음 속성을 사용하여 실행되는 테스트를 필터링할 수 있습니다.
Category(String): 테스트 범주에 따라 테스트를 필터링할 수 있습니다. 이 속성은 MSTest.exe 명령의 /category 옵션과 동일합니다. 자세한 내용은 /category 및 테스트 범주를 정의하여 테스트 그룹화를 참조하십시오.
MaxPriority(Int32): 실행할 테스트의 최대 우선 순위를 지정할 수 있습니다. 우선 순위가 이 값보다 작거나 같은 테스트만 실행됩니다. MinPriority 속성보다 크거나 같은 양의 정수를 지정해야 합니다. 최대 우선 순위를 지정하지 않으려면 -1을 지정해야 합니다.
팁
테스트에 우선 순위를 지정한 경우 MinPriority 및 MaxPriority 속성은 엄격한 테스트와 빠른 빌드 사이의 균형을 조정하는 데 중요한 메커니즘이 될 수 있습니다.
MinPriority(Int32): 실행할 테스트의 최소 우선 순위를 지정할 수 있습니다. 우선 순위가 이 값보다 크거나 같은 테스트만 실행됩니다. MaxPriority 속성보다 작거나 같은 양의 정수를 지정해야 합니다. 최소 우선 순위를 지정하지 않으려면 -1을 지정해야 합니다.
TestNames(IEnumerable<String>): 실행할 테스트의 이름을 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /test 옵션과 동일합니다. 자세한 내용은 /test을 참조하십시오.
MSTest 게시 속성
다음 속성을 사용하여 테스트 결과를 데이터 웨어하우스에 게시할 수 있습니다.
Publish(Boolean): 테스트 결과를 게시하려면 이 속성을 True로 설정해야 합니다.
Flavor(String): 결과를 게시할 테스트를 실행한 빌드의 버전을 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /flavor 옵션과 동일합니다. 자세한 내용은 테스트 결과 게시를 위한 명령줄 옵션을 참조하십시오.
Platform(String): 결과를 게시할 테스트를 실행한 빌드의 플랫폼을 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /platform 옵션과 동일합니다. 자세한 내용은 테스트 결과 게시를 위한 명령줄 옵션을 참조하십시오.
TestConfigId(Int32): 결과를 게시할 테스트 실행과 연결할 기존 테스트 관리 구성의 ID를 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /testconfigid 옵션과 동일합니다. 자세한 내용을 보려면 Visual Studio 명령 프롬프트에서 **MSTest /?**를 실행하십시오.
TestConfigName(String): 결과를 게시할 테스트 실행과 연결할 기존 테스트 관리 구성의 이름을 지정할 수 있습니다. 이 속성은 MSTest.exe 명령의 /testconfigname 옵션과 동일합니다. 자세한 내용을 보려면 Visual Studio 명령 프롬프트에서 **MSTest /?**를 실행하십시오.
MSTest 기타 속성
CommandLineArguments(String): 지정할 수 있는 추가 명령줄 옵션에 대한 자세한 내용은 MSTest.exe 명령줄 옵션을 참조하십시오.
PathToResultsFilesRoot(String): MSTest.exe에서 결과 파일(.trx 파일)을 배치하는 빌드 에이전트의 디렉터리에 대한 경로의 루트를 지정할 수 있습니다.
ToolPath(String): 실행할 MSTest.exe의 버전이 포함된 디렉터리의 경로를 지정할 수 있습니다. 경로를 지정하지 않으면 Team Foundation Build에서는 테스트 목록이나 테스트 컨테이너의 데이터를 기반으로 경로를 자동으로 확인합니다.
맨 위로 이동
빌드의 영향을 받는 테스트의 목록 가져오기(GetImpactedTests 활동)
GetImpactedTests 활동을 사용하여 현재 빌드의 코드 변경 내용을 식별하고 이러한 변경 내용의 영향을 받는 테스트의 목록을 생성할 수 있습니다. 이 활동은 영향을 받는 테스트의 목록을 데이터 웨어하우스에 기록하여 테스트 팀의 멤버가 이 빌드가 완료된 후 실행할 테스트를 쉽게 결정할 수 있게 합니다. 팀에서 이 데이터를 사용하는 방법에 대한 자세한 내용은 코드 변경의 영향을 받는 실행할 테스트 권장을 참조하십시오.
참고
제어된 체크 인 빌드 또는 개인 빌드에서는 이 활동이 적용되지 않습니다.
필요한 조건
GetImpactedTests 활동은 다음 조건을 만족하는 경우에만 작동할 수 있습니다.
MSTest 활동이 테스트 영향 데이터를 수집하는 테스트 설정 파일(TestSettings 속성에 지정됨)과 함께 실행되었습니다. 자동으로 생성되는 Traceandtestimpact.testsettings 파일을 사용하거나 테스트 영향 확인란이 선택된 다른 테스트 설정 파일을 사용할 수 있습니다. 자세한 내용은 방법: 코드 변경 후 실행할 테스트를 확인하기 위해 데이터 수집을 참조하십시오.
GetImpactedTests 활동이 이전 빌드를 성공적으로 식별했습니다. 자세한 내용은 다음 단원을 참조하십시오.
GetImpactedTests 활동이 이전 빌드를 식별하는 방법
GetImpactedTests 활동은 현재 빌드와 이전 빌드를 비교하여 결과를 생성합니다. 이 활동은 다음 프로세스를 사용하여 이전 빌드를 식별합니다.
BaselineBuildDropLocation 속성을 지정하는 경우 해당 이진 파일을 생성한 빌드가 이전 빌드로 식별됩니다.
BaselineBuildDropLocation 속성을 지정하지 않은 경우 이 활동은 다음 기준과 모두 일치하는 최신 빌드를 데이터 웨어하우스에서 검색하여 이전 빌드를 식별합니다.
빌드의 BuildDefinitionUri가 현재 빌드와 같습니다.
빌드의 Status가 Succeeded 또는 PartiallySucceeded입니다.
빌드에 DropLocation이 있습니다.
빌드가 제어된 체크 인 빌드 또는 개인 빌드가 아닙니다.
GetImpactedTests 결과 속성
CodeChanges(CodeChangeList): 이 빌드와 이전 빌드 간에 코드의 각 메서드를 변경한 내용의 목록을 반환합니다. 메서드는 MSIL(Microsoft Intermediate Language) 수준에서 분석됩니다.
ImpactedTests(TestList): 이전 빌드와 이 빌드 간에 코드 변경 내용의 영향을 받는 테스트의 목록을 반환합니다.
GetImpactedTests 인수 속성
기타
- Build: 빌드의 IBuildDetail 개체를 제공해야 합니다. GetBuildDetail 활동을 사용하여 이 개체에 대한 참조를 가져올 수 있습니다.
기타
Assemblies(IEnumerable<String>): 이 활동이 검사하도록 할 어셈블리의 목록을 지정해야 합니다. 일반적으로 이 빌드에서 이러한 어셈블리를 빌드했습니다.
AssociatedChangesets(IList<T><Changeset>): 테스트 영향 결과와 연결할 변경 집합을 지정할 수 있습니다. 일반적으로 빌드할 변경 집합을 지정하려고 합니다. 이러한 변경 집합에 대한 참조를 AssociateChangesetsAndWorkItems 활동에서 가져올 수 있습니다.
BinariesRoot(String): 어셈블리가 종속된 이진 파일의 경로를 지정해야 합니다. GetBuildDirectory 활동을 사용하여 이 값을 가져올 수 있습니다.
Workspace(Workspace): 빌드의 작업 영역에 대한 참조를 제공해야 합니다. CreateWorkspace 활동의 Result 속성에서 이 참조를 가져올 수 있습니다.
BaselineBuildDropLocation(String): GetImpactedTests 활동이 현재 빌드와 비교하도록 할 완료된 빌드가 포함된 저장 폴더의 경로를 지정할 수 있습니다. 이 속성을 지정하지 않으면 이 활동은 빌드 시스템에서 이전 빌드를 쿼리하려고 시도합니다. 자세한 내용은 이 단원의 앞부분에 나오는 "GetImpactedTests 활동이 이전 빌드를 식별하는 방법"을 참조하십시오.
맨 위로 이동
프로세스 시작(InvokeProcess 활동)
InvokeProcess 활동을 사용하여 빌드 서버에서 프로세스를 시작(프로그램을 실행)할 수 있습니다. 이 활동은 기본적으로 Start에 대한 래퍼입니다.
InvokeProcess Result(Int32) 속성
프로세스에서 ExitCode를 반환합니다.
InvokeProcess 인수 속성
FileName(String): 시작할 프로세스(실행할 프로그램)의 FileName을 지정해야 합니다. 예를 들어 %ProgramFiles%\ContosoBuildUtils\MarkBins.exe를 지정할 수 있습니다.
EnvironmentVariables(IDictionary<TKey, TValue><String,String>): 추가 환경 변수(EnvironmentVariables)와 해당 값을 지정할 수 있습니다.
OutputEncoding(Encoding): 출력(StandardOutputEncoding) 및 오류(RedirectStandardError) 스트림을 읽는 데 사용되는 인코딩을 지정할 수 있습니다. 대부분의 경우 기본값이 이 속성에 가장 적합한 값입니다.
System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
WorkingDirectory(String): 프로세스를 실행할 작업 디렉터리(WorkingDirectory)를 지정할 수 있습니다.
예를 들어 컴파일된 이진 파일에 대해 MarkBins.exe 유틸리티를 실행할 수 있습니다. 유틸리티가 실행되는 범위를 좁히려면 GetBuildDirectory를 호출하고 결과를 이 속성에 배치하면 됩니다.
프로세스에서 표준 출력 및 오류 출력을 표시하려면
InvokeProcess 활동에서 보려면 두 번 클릭을 두 번 클릭합니다.
WriteBuildMessage 활동이 표준 출력 처리 아래에 나타나도록 도구 상자에서 활동을 끌어 오고 WriteBuildMessage Message 속성을 stdOutput으로 설정합니다.
WriteBuildError 활동이 표준 출력 처리 아래에 나타나도록 도구 상자에서 활동을 끌어 오고 WriteBuildMessage Message 속성을 errOutput으로 설정합니다.
버전 제어 작업
Team Foundation Build 활동을 사용하여 다음 버전 제어 작업을 수행할 수 있습니다.
변경 집합 및 작업 항목을 빌드와 연결
제어된 변경 내용 체크 인
체크 인 정책 평가
버전 제어에서 파일에 레이블 지정
변경 집합 및 작업 항목을 빌드와 연결(AssociateChangesetsAndWorkItems 활동)
AssociateChangesetsAndWorkItems 활동을 사용하여 코드에 들어간 모든 변경 집합 및 관련 작업 항목과 완료된 각 빌드를 연결할 수 있습니다.
각 빌드 정의에서는 완료된 다음 빌드와 연결하기 위해 대기 중인 변경 집합 및 작업 항목의 레코드를 유지 관리합니다. 예를 들어 빌드 A와 빌드 B가 변경 집합 382를 빌드할 수 있습니다. 빌드 A는 큐에 대기되고 성공적으로 완료되지만 빌드 B는 큐에 대기되고 실패합니다. 이제 변경 집합 382는 성공적으로 완료된 빌드 A 및 실패한 빌드 B와 연결되어 있습니다. 변경 집합 382는 빌드 A의 완료된 다음 빌드와 연결되지 않지만 빌드 B의 성공적으로 완료된 다음 빌드와 연결됩니다.
AssociateChangesetsAndWorkItems Result(IList<T><Changeset>) 속성
빌드와 연결된 변경 집합을 반환합니다.
AssociateChangesetsAndWorkItems 인수 속성
CurrentLabel(String): 이 속성은 비워 두십시오.
LastLabel(String): 이 속성은 비워 두십시오.
UpdateWorkItems(Boolean): 관련 작업 항목의 수정된 빌드 필드를 빌드 번호로 채우려면 이 속성의 값을 True로 설정하고, 그렇지 않으면 이 값을 False로 설정합니다.
맨 위로 이동
제어된 변경 내용 체크 인(CheckInGatedChanges 활동)
CheckInGatedChanges 활동을 사용하여 제어된 체크 인 빌드를 트리거한 코드 변경 내용을 버전 제어에 체크 인할 수 있습니다. 또한 이 활동은 변경 집합과 연결된 작업 항목과 빌드를 연결합니다.
참고
올바르게 작동하기 위해 이 활동은 템플릿에서 구현된 모든 MSBuild 및 MSTest 활동 뒤에 배치되어야 합니다.
CheckInGatedChanges Result(Changeset) 속성
체크 인될 변경 내용이 포함된 변경 집합을 반환합니다.
CheckInGatedChanges 인수 속성
IgnoreErrors(Boolean): CompilationStatus 및 TestStatus 속성의 값이 모두 Succeeded인 경우에만 파일이 체크 인될 수 있도록 허용하려면 이 속성을 False로 설정하고, 이러한 속성의 값에 관계없이 파일이 체크 인될 수 있도록 허용하려면 이 속성을 True로 설정합니다.
참고
SetBuildProperties 활동을 사용하여 CompilationStatus 및 TestStatus 속성을 설정할 수 있습니다.
UpdateWorkItems(String): 관련 작업 항목의 수정된 빌드 필드를 빌드 번호로 채우려면 이 값을 True로 설정하고, 그렇지 않으면 False로 설정합니다.
맨 위로 이동
체크 인 정책 평가(EvaluateCheckInPolicies 활동)
EvaluateCheckInPolicies 활동을 사용하여 빌드 서버에서 체크 인 정책을 실행할 수 있습니다. 이 활동은 빌드 정의의 작업 영역 탭에서 지정된 폴더에 적용되는 체크 인 정책을 실행합니다. 체크 인 정책이 실패하고 빌드의 이유가 CheckInShelveset(제어된 체크 인 빌드) 또는 ValidateShelveset(개인 빌드)인 경우 빌드가 실패합니다.
중요
체크 인 정책은 개발자의 클라이언트 컴퓨터에서 평가되지 않고 빌드 서버에서 평가됩니다.
이 활동을 가장 효과적으로 사용하는 방법은 제어된 체크 인 빌드와 함께 이 활동을 사용하여 보다 강력한 품질 게이트를 적용하는 것입니다. 이런 식으로 활동을 사용하면 사용자가 체크 인 정책을 우회할 수 없습니다. 이 활동은 다음과 같은 형식의 체크 인 정책에 가장 유용합니다.
기본 제공 Work Items 체크 인 정책
빌드 서버에서 평가되도록 설계된 사용자 지정 체크 인 정책
이 활동은 기본 제공 Builds, Code Analysis 또는 Testing Policy 체크 인 정책을 평가하는 데는 유용하지 않습니다. MSBuild 및 MSTest 활동을 사용하면 보다 효율적으로 이러한 프로세스를 빌드에서 직접 실행할 수 있기 때문입니다.
자세한 내용은 다음 리소스를 참조하십시오.
기본 제공 체크 인 정책에 대한 자세한 내용은 체크 인 정책 추가를 참조하십시오.
사용자 지정 체크 인 정책에 대한 자세한 내용은 How to: Create Custom Check-in Policies in Visual Studio Team Foundation Server를 참조하십시오.
제어된 체크 인 빌드에 대한 자세한 내용은 변경 내용의 유효성을 검사하는 제어된 체크 인 빌드 정의를 참조하십시오.
개인 빌드에 대한 자세한 내용은 큐에 빌드 대기시키기를 참조하십시오.
EvaluateCheckInPolicies 인수 속성
- Workspace(Workspace): 평가할 작업 영역을 지정해야 합니다. 대부분의 경우 CreateWorkspace 활동의 Result 속성에서 초기화하는 변수로 이 속성을 설정해야 합니다. DefaultTemplate.xaml을 기반으로 하는 빌드 프로세스를 만드는 경우 Workspace 변수를 사용해야 할 수 있습니다.
맨 위로 이동
버전 제어에서 파일에 레이블 지정
Team Foundation Build 활동을 사용하여 파일에 레이블을 지정할 수 있습니다.
빌드할 소스 코드에 레이블 지정
파일에 레이블 지정
빌드할 소스 코드에 레이블 지정(LabelWorkspace 활동)
팀에서 지정된 완료된 빌드에 포함된 각 파일의 버전을 쉽게 식별할 수 있도록 버전 제어에서 소스 코드 파일에 레이블을 지정해야 합니다. LabelWorkspace 활동을 사용하여 빌드 프로세스에 이 단계를 포함할 수 있습니다.
LabelWorkspace 인수 속성
Name(String): 레이블의 이름을 지정해야 합니다.
Child(LabelChildOption): 지정한 레이블과 일치하는 레이블이 이미 있는 항목을 처리하는 방법을 지정할 수 있습니다. 이 속성은 tf label 명령의 /child 옵션과 동일합니다.
Workspace(Workspace): 이 빌드의 작업 영역에 대한 참조를 제공해야 합니다. 대부분의 경우 CreateWorkspace 활동의 Result 속성에서 초기화하는 변수로 이 속성을 설정해야 합니다. DefaultTemplate.xaml을 기반으로 하는 빌드 프로세스를 만드는 경우 Workspace 변수를 사용해야 할 수 있습니다.
Comment(String): 레이블에 대한 설명을 지정할 수 있습니다. 이 속성은 tf label 명령의 /comment 옵션과 동일합니다.
Scope(String): 레이블의 범위를 지정할 수 있습니다. 이 속성은 tf label 명령의 @scope 인수와 동일합니다.
tf label 매개 변수에 대한 자세한 내용은 Label 명령(Team Foundation 버전 제어)을 참조하십시오.
맨 위로 이동
파일에 레이블 지정(LabelSources 활동)
LabelSources 활동을 사용하여 버전 제어에서 파일에 레이블을 지정할 수 있습니다.
팁
LabelWorkspace 활동을 사용하는 경우 빌드할 소스 코드 파일에 보다 효과적으로 레이블을 자주 지정할 수 있습니다.
LabelSources 인수 속성
Items(IEnumerable<String>): 레이블을 지정할 항목을 지정해야 합니다. 각 String은 tf label 명령의 itemspec 인수와 동일합니다.
Name(String): 레이블의 이름을 지정해야 합니다.
Scope(String): 레이블의 범위를 지정해야 합니다. 이 속성은 tf label 명령의 @scope 인수와 동일합니다.
Recursion(RecursionType): 디렉터리 계층 구조의 모든 파일에 레이블을 지정하려면 Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full을 지정하고, 그렇지 않으면 Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel을 지정합니다.
Version(String): 레이블을 지정할 항목의 버전을 제공해야 합니다. 이 속성은 tf label 명령의 /version 옵션과 동일합니다.
Child(LabelChildOption): 지정한 레이블과 일치하는 레이블이 이미 있는 항목을 처리하는 방법을 지정할 수 있습니다. 이 속성은 tf label 명령의 /child 옵션과 동일합니다.
Comment(String): 레이블에 대한 설명을 지정할 수 있습니다. 이 속성은 tf label 명령의 /comment 옵션과 동일합니다.
tf label 매개 변수에 대한 자세한 내용은 Label 명령(Team Foundation 버전 제어)을 참조하십시오.
맨 위로 이동
작업 항목으로 작업
Team Foundation Build 활동을 사용하여 작업 항목으로 작업할 수 있습니다.
변경 집합 및 작업 항목을 빌드와 연결
작업 항목 만들기
작업 항목 만들기(OpenWorkItem 활동)
OpenWorkItem 활동을 사용하여 작업 항목을 만들 수 있습니다.
OpenWorkItem Result(WorkItem) 속성
새 작업 항목을 반환합니다.
OpenWorkItem 인수 속성
AssignedTo(String): 작업 항목을 할당할 사용자를 지정해야 합니다.
Title(String): 작업 항목의 제목을 지정해야 합니다.
Type(String): 작업 항목의 형식을 지정해야 합니다. 일반적인 Type 값에는 “Bug”, “Issue”, “Task” 등이 있습니다.
Comment(String): 작업 항목의 기록에 설명을 추가할 수 있습니다.
CustomFields(IDictionary<TKey, TValue><String,String>): 하나 이상의 작업 항목 필드 값을 지정할 수 있습니다.
맨 위로 이동
기호 데이터로 작업
IndexSources 및 PublishSymbols라는 두 가지 Team Foundation Build 활동을 사용하여 기호 데이터로 작업할 수 있습니다.
이러한 활동은 IntelliTrace 디버깅을 사용하도록 설정하는 데 일반적으로 사용됩니다. IntelliTrace 디버깅을 사용하도록 설정하려면 먼저 IndexSources 활동을 호출하여 기호 데이터를 준비한 다음 PublishSymbols 활동을 호출하여 이 데이터를 SymStore 기호 저장소에 게시해야 합니다.
IntelliTrace 디버깅에 대한 자세한 내용은 IntelliTrace를 사용한 디버깅을 참조하십시오.
PDB 파일의 기호 데이터에 버전 제어 경로 및 버전 포함(IndexSources 활동)
IndexSources 활동을 사용하여 .pdb 파일의 기호 데이터에 버전 제어 경로 및 버전을 포함할 수 있습니다.
IndexSources 인수 속성
FileList(IEnumerable<String>): 각 기호 파일의 전체 경로와 이름을 지정해야 합니다. FindMatchingFiles 활동을 사용하여 이 인수를 제공할 수 있습니다.
**를 사용하여 재귀 검색을 지정할 수 있습니다. 예를 들어 MatchPattern 속성의 String.Format("{0}\**\*.pdb", BinariesDirectory) 값을 사용하여 FindMatchingFiles를 호출할 수 있습니다.
맨 위로 이동
SymStore 기호 저장소에 기호 게시(PublishSymbols 활동)
PublishSymbols 활동을 사용하여 PDB 파일의 기호 데이터를 SymStore 기호 저장소에 게시할 수 있습니다. 이 활동은 기본적으로 SymStore.exe에 대한 래퍼입니다. SymStore 기호 저장소에 대한 자세한 내용과 이 저장소를 준비하는 방법은 기호 데이터 게시을 참조하십시오.
중요
동시 빌드에서 동일한 기호 파일 공유에 게시하려고 하면 데이터가 손상될 수 있습니다. 이 위험을 줄이려면 SharedResourceScope 활동 안에서만 이 활동을 호출해야 합니다.
PublishSymbols Result(String) 속성
SymStore.exe에서 반환하는 트랜잭션 ID를 반환합니다.
PublishSymbols 인수 속성
FileList(IEnumerable<String>): 각 기호 파일의 전체 경로와 이름을 지정해야 합니다. FindMatchingFiles 활동을 사용하여 이 인수를 제공할 수 있습니다.
예를 들어 MatchPattern 속성의 String.Format("{0}\**\*.pdb", BinariesDirectory) 값을 사용하여 FindMatchingFiles를 호출할 수 있습니다.
StorePath(String): SymStore 기호 저장소의 루트 폴더에 대한 UNC 파일 경로를 지정해야 합니다.
CommandLineArguments(String): SymStore.exe에 전달할 수 있는 추가 인수에 대한 자세한 내용은 SymStore Command-Line Options를 참조하십시오.
Comments(String): 기호 저장소의 트랜잭션 기록 파일에 기록되는 트랜잭션 설명을 지정할 수 있습니다. 이 속성은 SymStore.exe 명령의 /c Comment 매개 변수와 동일합니다. 자세한 내용은 SymStore Command-Line Options를 참조하십시오.
ProductName(String): 기호 저장소의 트랜잭션 기록 파일에 기록되는 제품 이름을 지정할 수 있습니다. 예를 들어 GetBuildDetail을 호출하여 BuildDefinition 속성에서 가져올 수 있는 빌드 정의 이름(Name)으로 이 속성을 설정할 수 있습니다. 이 속성은 SymStore.exe 명령의 /t Product 매개 변수와 동일합니다. 자세한 내용은 SymStore Command-Line Options를 참조하십시오.
StoreCompressed(Boolean): 파일을 압축된 파일로 기호 저장소에 저장하려면 이 값을 True로 설정합니다. 이렇게 설정하지 않으면 파일이 압축되지 않은 상태로 저장됩니다. 이 속성은 SymStore.exe 명령의 /compress 매개 변수와 동일합니다. 자세한 내용은 SymStore Command-Line Options를 참조하십시오.
Version(String): 예를 들어 GetBuildDetail을 호출하여 가져올 수 있는 빌드 번호(BuildNumber)로 이 속성을 설정할 수 있습니다. 이 속성은 SymStore.exe 명령의 /v Version 매개 변수와 동일합니다. 자세한 내용은 SymStore Command-Line Options를 참조하십시오.
맨 위로 이동
유용한 개체에 대한 참조 가져오기
Team Foundation Build 활동을 사용하여 유용한 개체에 대한 참조를 가져올 수 있습니다.
팀 프로젝트 컬렉션의 개체에 대한 참조 가져오기(GetTeamProjectCollection 활동)
GetTeamProjectCollection 활동을 사용하여 Result 속성에서 TfsTeamProjectCollection 개체에 대한 참조를 가져올 수 있습니다. 이 기초 개체는 중요합니다. 예를 들어 이 개체를 사용하여 Team Foundation의 응용 프로그램 계층 서버에 연결할 수 있습니다.
IBuildAgent 개체에 대한 참조 가져오기(GetBuildAgent 활동)
GetBuildAgent 활동을 사용하여 Result 속성에서 IBuildAgent 개체에 대한 참조를 가져올 수 있습니다. 이 활동은 AgentScope 활동 안에서만 사용할 수 있습니다.
IBuildDetail 개체에 대한 참조 가져오기(GetBuildDetail 활동)
GetBuildDetail 활동을 사용하여 Result 속성에서 IBuildDetail 개체에 대한 참조를 가져올 수 있습니다. 이 개체를 사용하여 현재 빌드에 대한 데이터를 가져오고 경우에 따라 현재 빌드에 대한 데이터를 설정할 수 있습니다.
맨 위로 이동
BuildEnvironment 개체에 대한 참조 가져오기(GetBuildEnvironment 활동)
GetBuildEnvironment 활동을 사용하여 Result 속성에서 BuildEnvironment 개체에 대한 참조를 가져올 수 있습니다. 일반적으로 이 속성을 사용하여 다음 작업을 수행할 수 있습니다.
Environment 개체를 사용하여 워크플로의 현재 세그먼트가 빌드 컨트롤러에서 실행되는지, 아니면 빌드 에이전트에서 실행되는지를 확인할 수 있습니다.
CustomAssemblyPath 개체를 사용하여 빌드 에이전트에서 사용자 지정 활동이 포함된 어셈블리의 경로를 가져올 수 있습니다.
맨 위로 이동
사용자 지정 빌드 프로세스에서 다시 사용할 수 없는 활동
일부 활동은 사용자 지정 빌드 프로세스에서 사용할 수 없습니다.
TfsBuild 활동
이 활동은 무시하십시오. 이 활동은 UpgradeTemplate.xaml에서만 사용할 수 있습니다. 이 활동은 사용자 지정 빌드 프로세스에서 다시 사용할 수 없습니다.
CreateWorkspace 활동
CreateWorkspace 활동의 인스턴스를 만들거나 수정할 필요가 없을 수 있습니다. 하나 이상의 추가 작업 영역이 필요한 빌드 프로세스를 설계하는 경우 이 목표를 달성하기 위해 사용자 지정 활동을 만들어야 합니다.
기타 작업 영역 활동
DefaultTemplatate.xaml에서 사용하는 것과 동일하게 빌드 프로세스 템플릿에서 이러한 활동을 사용할 수 있습니다. 그러나 작업 영역을 만드는 사용자 지정 활동을 개발하지 않는 경우 사용자 지정 빌드 프로세스 템플릿에서 작업 영역의 인스턴스를 만들거나 수정할 필요가 없을 수 있습니다.
DeleteWorkspace
맨 위로 이동
GetWorkspace
맨 위로 이동
RevertWorkspace
맨 위로 이동
SyncWorkspace
맨 위로 이동