태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'빌드 커스터마이징'에 해당되는 글 1건

  1. 2011.07.29 TFS 2010 Build Process Template Customization - File Copy (4)
VS 2010 ALM/TFS 20102011.07.29 15:52

[TFS 2010, Team Explorer 2010, TF Build 2010]

TFS 빌드를 사용해서 솔루션 및 프로젝트를 빌드하면, 빌드된 파일들은 하나의 폴더(drop location)로 복사된다.

그런데, 어떤 경우에는 빌드된 파일을 drop location이 아닌 특정 폴더로 복사해야 하는 경우가 있다.

예를 들어, xap 파일을 ClientBin 폴더로 복사를 해야한다거나, aspx 파일을 웹 사이트의 가상 경로로 매핑된 폴더로 복사를 해야하는 경우가 그렇다.


이 글에서는 Build Process Tempate을 수정해서, 빌드 후에 파일을 특정 폴더로 복사하는 방법에 대해 설명할 것이다.


자세한 방법을 설명하기 전에 먼저 전체적인 진행 과정을 요약해 보면 다음과 같다.

  1. 새 빌드 정의를 만든다.
  2. 기본 빌드 프로세스 템플릿(DefaultTemplate.xaml)을 기반으로 새 빌드 프로세스 템플릿을 만든다.
  3. 새 빌드 프로세스 템플릿에 파일을 복사하는 절차를 추가한다.
  4. 새 빌드 정의를 실행시킨다.



그럼, 이제 위의 과정 별로 자세한 절차에 대해 살펴보자.

[1.새 빌드 정의 만들기]

  1. 이 과정은 MSDN 라이브러리 참조



[2.새 빌드 프로세스 템플릿 만들기]

  1. '1. 새 빌드 정의 만들기'에서 만든 빌드 정의 화면을 닫았을 경우, 팀 탐색기에서 새로 만든 빌드 정의에 마우스 오른쪽 클릭 후, 빌드 정의 편집 클릭
  2. 프로세스 탭 클릭
  3. 빌드 프로세스 템플릿에서 자세한 정보 표시 클릭
  4. 새로 만들기 클릭
  5. 기존 XAML 파일 복사 선택
  6. 복사할 파일 선택에 DefaultTemplate.xaml이 선택되었는지 확인
    1. 만약, 선택되어 있지 않다면 찾아보기를 눌러 DefaultTemplate.xaml을 선택
  7. 새 파일 이름에 새 빌드 프로세스 템플릿 이름 입력 (예: FileCopyTemplate)
  8. 확인 클릭
  9. 빌드 프로세스 파일의 값이 새로 만든 빌드 프로세스 템플릿으로 변경됨



[3.새 빌드 프로세스 템플릿에 파일을 복사하는 절차 추가]

  1. '2.새 빌드 프로세스 템플릿 만들기'에 이어서, 버전 제어 경로의 하이퍼링크 클릭
  2. 소스 제어 탐색기에서 7에서 명명한 빌드 프로세스 템플릿을 찾아 마우스 오른쪽 클릭 후, 최신 버전 가져오기 클릭
  3. 다시 템플릿에 마우스 오른쪽 클릭 후, 편집하기 위해 체크 아웃 클릭
  4. 또 다시 템플릿에 마우스 오른쪽 클릭 후, 보기 클릭
  5. 빌드 프로세스 템플릿 편집 화면의 오른쪽 위에 있는 복원 클릭 후, 모두 축소 클릭. 만약, 복원이 안 보인다면 모두 축소 클릭.
  6. 다음의 순서대로 각 활동 요소를 확장
    1. 에이전트에서 실행
    2. 변경 집합과 작업 항목 컴파일, 테스트 및 연결 시도
    3. Sequence
    4. 변경 집합과 작업 항목 컴파일, 테스트 및 연결
    5. 컴파일 및 테스트 시도
    6. 컴파일 및 테스트
    7. For Each Configuration in BuildSettings.PlatformConfigurations
    8. 구성에 대해 컴파일 및 테스트
    9. If BuildSettings.HasProjectsToBuild
    10. For Each Project in BuildSettings.ProjectsToBuild
    11. 프로젝트 컴파일 시도
    12. 프로젝트 컴파일
  7. 도구 상자에서 제어 흐름 도구 그룹의 Sequence를 프로젝트에 대해 MSBuild 다음으로 끌어다 놓음.
  8. 새로 추가한 Sequence 선택 후, 빌드 프로세스 템플릿 편집 화면의 왼쪽 아래에 있는 변수 클릭
  9. 변수 목록의 맨 마지막에 다음과 같이 변수 추가
    1. 이름: FileCopyDirectory
    2. 변수 유형: String
    3. 범위: Sequence
    4. 기본값: 파일을 복사할 폴더의 경로(예: D:\output\binaries).
    • 참고: 기본값에 기존에 있는 폴더를 지정해야 함. 빌드 과정에서 폴더를 새로 만들지 않음
  10. 변수를 다시 한 번 클릭하여 변수 목록 화면을 닫음
  11. 새로 추가한 Sequence 활동 요소를 확장
  12. 도구 상자에서 Team Foundation 빌드 활동 도구 그룹의 InvokeProcess를 7에서 추가한 Sequence 안으로 끌어다 놓음
  13. 새로 추가한 InvokeProcess에 마우스 오른쪽 클릭 후, 속성 클릭
  14. 속성 창에서 다음과 같이 각 항목 편집
    • DisplayName: Output File Copy
    • FileName: "xcopy.exe"
    • Arguments: String.Format("""{0}"" ""{1}"" /r/c/y", outputDirectory+filename, FileCopyDirectory)
      • filename: 복사할 파일 이름
      • 예: "\CoreBin.dll", "\*.dll", "\*.*"
  15. Ctrl+s를 눌러서 변경 내용 저장
  16. 소스 제어 탐색기에서 새 빌드 프로세스 템플릿에 마우스 오른쪽 클릭 후, 보류 중인 변경 내용 체크 인 클릭
  17. 체크 인 창에서 설명에 내용 입력 후, 체크 인 클릭
  18. '1.새 빌드 정의 만들기'에서 만든 빌드 정의 화면에서 Ctrl+s를 눌러 빌드 정의 저장
  19. 빌드 정의 화면을 닫음



[4.새 빌드 정의 실행]

  1. '1.새 빌드 정의 만들기'에서 만든 빌드 정의에 마우스 오른쪽 클릭 후, 새 빌드 큐 대기 클릭
  2. 빌드 큐에 대기 창에서 큐 클릭
  3. 빌드 탐색기에서 실행 중인 빌드 정의에 마우스 더블 클릭
  4. 빌드 상세 화면에서 빌드 진행 상황 확인




빌드가 성공적으로 끝나면, Windows 탐색기에서 FileCopyDirectory(여기서는 D:\output\binaries) 폴더에 빌드된 파일이 복사되었는지 확인한다.


이 글에서는 빌드된 파일 중 일부 또는 전부를 특정 폴더로 복사하는 방법에 대해 알아보았다.


빌드 프로세스 템플릿 편집 화면에서 Parallel, ForEach<T>, FindMatchFiles 등의 활동 요소들을 활용하면 더욱 다양하고 복잡한 활동을 디자인 할 수 있다.


이 외에도 MSDN 라이브러리에는 빌드한 파일을 솔루션 및 프로젝트 구조 그대로 복사하는 방법에 대해 잘 설명되어 있다.

* 참고: 빌드 시스템에서 이진 파일을 배치하는 위치 제어(http://msdn.microsoft.com/ko-kr/library/ff977206.aspx)



감사합니다.


webmars.

Posted by webmars