태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

VS 2010 ALM/TFS 20102011.08.02 16:52

최근에 TFS 팀 빌드를 하다가 다음과 같은 오류가 나타났었다.


c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1835,9): error MSB4018: "GenerateResource" 작업에서 예기치 않은 오류가 발생했습니다.
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1835,9): error MSB4018: System.Runtime.InteropServices.ExternalException (0x80004005): GDI+에서 일반 오류가 발생했습니다.
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1835,9): error MSB4018:    위치: System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams) c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1835,9): error MSB4018:    위치: System.Drawing.Image.Save(MemoryStream stream)

<이하 생략>


그 동안 TFS 빌드를 많이 사용해 봤지만, 이런 오류 메시지를 본 것은 처음이었다.

이상한 것은 Visual Studio에서 빌드를 하면 정상적으로 빌드가 되는데, TFS 빌드를 하면 위와 같은 오류가 나타난다는 것이었다.


여느때처럼 Visual Studio Team System 포럼과 구글을 뒤지기 시작했다.

관련 글이 많지는 않았지만, 그래도 가장 근접한 질문과 답변이 있는 글을 찾았다.

http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/00092964-946f-42f1-b4d4-2afeab13f9e3/


위의 글을 보면 알겠지만, 질문을 올린 것은 2006년 6월 20일인데 그 이후로 2010년 3월 5일까지 댓글들이 달렸다. ㅡㅡ;;

어찌보면, 위와 같은 오류의 원인이 오랜 시간 동안 완전히 해결되지 않고 있다는 반증인 것 같다.

아니면, 오류가 발생하는 원인이 다양하던가...


어쨌든, 여기서 제시하는 몇 가지 방법을 시도해 보았다.

하지만, 소용이 없었다.


그래서, 원점에서부터 생각을 다시 해 보았다.

Visual Studio를 사용할 때와 TFS 빌드를 사용할 때의 차이점이 무엇일까?


동일한 컴퓨터에서 빌드를 했기 때문에 빌드 환경에는 차이가 없음이 분명했다.


유일한 차이점이라면, 빌드를 하는 계정이 다르다는 것이었다!

Visual Studio에서는 내가 로그인한 계정으로 빌드를 하지만, TFS 빌드는 빌드 서비스 계정이 빌드를 하는 것이다.


그래서, 사용자 계정에 대한 권한의 문제로 생각하고,  TFS 빌드 서비스 계정에 대한 권한을 다양하게 변경해 보았다.

그러나, 이것도 소용없었다.



혹시나 하는 마음에 cache 정보를 삭제하기로 했다.

각 사용자 별 cache 정보는 다음 위치에 있다.

C:\Users\<사용자ID>\AppData\Local\Microsoft\Team Foundation\3.0\Cache

* C:\Users\<사용자ID>\AppData 폴더가 안 보인다면, Windows 탐색기의 폴더 옵션에서 숨김 폴더에 대한 설정을 변경해야 한다.


Windows 탐색기에서 이 폴더로 이동한 다음 Cache 폴더 밑에 있는 모든 폴더 및 파일을 선택하고 삭제를 했다.

그런데, 특정 폴더 하나가 삭제가 안 되면서 다른 프로세스에서 사용 중이라 삭제가 안 된다는 메시지가 나타났다.


순간, 어떠한 이유에서인지는 몰라도 어떤 프로세스가 이 cache 폴더에 lock을 걸고 있어서 그럴 것이라고 생각을 했고, 그 어떤 프로세스는 분명 빌드 프로세스일 거라는 확신이 들었다.

그래서, 빌드 프로세스를 중지했다가 다시 시작하기로 했다.


빌드 프로세스를 다시 시작하려면 관리 도구의 서비스에서 빌드 관련 서비스를 다시 시작해도 되고, Team Foundation 관리 콘솔에서 빌드 서비스를 다시 시작해도 된다.


Team Foundation 관리 콘솔에서 빌드 서비스를 다시 시작하기로 했다.


  1. 시작->모든 프로그램->Microsoft Team Foundation Server 2010->Team Foundation 관리 콘솔 클릭
  2. Team Foundation 관리 콘솔 화면의 왼쪽 패널에서 빌드 구성 클릭
  3. 빌드 구성 화면에서 빌드 서비스의 다시 시작 클릭
  4. 빌드 컨트롤러 및 빌드 에이전트가 준비 상태인지 확인


빌드 서비스를 다시 시작한 후, 다시 cache 폴더로 가서 아까 삭제되지 않았던 폴더를 다시 삭제해 보았다.

이번에는 삭제가 잘 됐다. 역시, 빌드 프로세스가 그 폴더에 lock을 걸고 있었던 거다.

근데, 왜 그랬지??? 그 원인은 알 수가 없었다. 쩝~~~ (뭔가 찝찝해... ㅡㅡ)


폴더를 삭제한 후, TFS 빌드를 다시 수행했다. 아무 문제없이 TFS 빌드가 성공되었다.

휴~~~


여러분들 중 만약 TFS 빌드를 하다가 저와 같은 오류가 발생하거든 먼저

http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/00092964-946f-42f1-b4d4-2afeab13f9e3/

에 있는 해결 방법들을 따라해 보시고, 그래도 안 될 경우 cache 폴더 밑에 있는 모든 폴더 및 파일을 삭제해 보길 바란다.


소 뒷걸음질치다가 쥐 밟는 격이지만... 그래도 누가 아는가? 저처럼 문제가 해결될지... ㅋㅋㅋ... ㅡㅡ;;;


감사합니다.

webmars.

신고
Posted by webmars
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
VS 2010 ALM/TFS 20102011.07.19 18:35

TFS 2010에는 팀 프로젝트 컬렉션이라는 개념이 새로 도입되었다. 팀 프로젝트 컬렉션은 여러 개의 팀 프로젝트를 묶는 하나의 그룹이라고 생각하면 이해하기 쉽다.

팀 프로젝트 컬렉션 끼리는 데이터(작업 항목, 변경 집합 등)를 공유하지 않기 때문에 논리적으로 분리된 별도의 TFS처럼 사용하면 된다.

팀 프로젝트 컬렉션 중에 더 이상 사용하지 않는 컬렉션은 삭제하는 것이 좋다. 관리적인 측면에서나 시스템 성능적인 측면에서 불필요한 컬렉션이 계속해서 존재하는 것은 효율성을 떨어뜨리기 때문에 그렇다.


참고로, TFS 2010에는 팀 프로젝트 컬렉션 및 팀 프로젝트 개수에 제한이 있다. 하나의 팀 프로젝트 컬렉션에 만들 수 있는 최대 팀 프로젝트 수는 200개이며, 하나의 SQL Server 인스턴스에 만들 수 있는 최대 팀 프로젝트 컬렉션 수는 50 ~ 200 (RAM 8GB ~ 60GB)이다.



팀 프로젝트 컬렉션 삭제는 Team Foundation 관리 콘솔에서 하면 된다. 다음은 Team Foundation 관리 콘솔을 사용해서 팀 프로젝트 컬렉션을 삭제하는 방법이다.

  1. 시작->모든 프로그램->Microsoft Team Foundation Server 2010->Team Foundation 관리 콘솔 선택
  2. Team Foundation 아래에서 서버의 이름을 확장하고 응용 프로그램 계층을 확장한 다음 팀 프로젝트 컬렉션 클릭
  3. 컬렉션 목록에서 삭제할 컬렉션의 이름을 클릭
  4. 일반 탭에서 팀 프로젝트 컬렉션 분리를 클릭
  5. (선택 사항) 팀 프로젝트 컬렉션에 대한 서비스 메시지를 제공하십시오. 페이지의 서비스 메시지에 이 컬렉션의 프로젝트에 대한 연결을 시도하는 사용자를 위한 메시지를 입력
  6. 다음을 클릭
  7. 팀 프로젝트 컬렉션을 분리하는 데 사용할 설정을 검토
  8. 변경할 설정이 있으면 이전을 클릭. 설정이 올바른 경우 확인을 클릭
  9. 모든 준비 검사가 완료되면 분리를 클릭
  10. 모든 프로세스가 완료되면 다음을 클릭
  11. 닫기를 클릭



팀 프로젝트 컬렉션은 하나의 데이터베이스와 연결되어 있기 때문에 관련 데이터베이스도 삭제해야 한다.

  1. SQL Server Management Studio를 열고 컬렉션 데이터베이스를 호스팅하는 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장
  2. 삭제할 데이터베이스를 마우스 오른쪽 단추로 크릭한 다음 태스크->오프라인으로 전환 클릭
  3. 오프라인으로 전환된 후, 삭제할 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 삭제를 클릭
  4. 올바른 데이터베이스가 선택되었는지 확인하고 확인을 클릭



이번엔 팀 프로젝트 컬렉션 사이트를 삭제하는 방법이다.

  1. SharePoint 중앙 관리를 열고 SharePoint 중앙 관리의 위쪽 링크 모음에서 응용 프로그램 관리를 클릭
  2. 응용 프로그램 관리 페이지의 SharePoint 사이트 관리 섹션에서 사이트 모음 삭제를 클릭
  3. 사이트 모음 드롭다운 목록에서 아래쪽 화살표를 클릭하고 사이트 모음 변경을 클릭
  4. 사이트 모음 선택 페이지의 URL 목록에서 삭제할 사이트를 클릭하고 확인 클릭
  5. 사이트 모음 삭제 페이지에서 삭제를 클릭
  6. 삭제할지 묻는 메시지 상자에서 확인을 클릭



마지막으로, 팀 프로젝트 컬렉션의 보고서 폴더를 삭제한다.

  1. Internet Explorer 실행한 다음 주소에 http://<tfsservername>/reports 입력
  2. tfsreports 폴더를 클릭
  3. 삭제할 팀 프로젝트 컬렉션과 이름이 같은 폴더의 드롭다운 버튼을 클릭
  4. 삭제를 클릭

그런데, Team Foundation 관리 콘솔에서 팀 프로젝트 컬렉션을 분리할 때 오류가 발생하는 경우가 있다. 특히, 팀 프로젝트 컬렉션이 오프라인 상태일 때 그렇다.

이런 경우에는 팀 프로젝트 컬렉션을 TFSConfig Collection이라는 명령어로 삭제해야 한다.

이 명령어는 C:\Program Files\Microsoft Team Foundation Server 2010\Tools 폴더에 있다.


다음은 TFSConfig Collection 구문이다.

TFSConfig Collection {/attach | /detach | /delete} [/collectionName:CollectionName] [/collectionDB:ServerName;DatabaseName] [/clone]


이 구문의 옵션에 대한 자세한 설명은 MSDN 라이브러리(http://msdn.microsoft.com/ko-kr/library/ee349263.aspx)를 참고하기 바란다.


다음은 MyTeamProjectCollection이라는 팀 프로젝트 컬렉션을 삭제하는 예제 구문이다.

TFSConfig Collection /delete /CollectionName:MyTeamProjectCollection


이와 같이 TFSConfig Collection 명령어로 팀 프로젝트 컬렉션을 삭제한 후, 데이터베이스, 팀 프로젝트 컬렉션 사이트, 보고서 등을 삭제한다.


감사합니다.

webmars.

신고
Posted by webmars
VS 2010 ALM/TFS 20102011.07.19 17:32

TFS 운영하다 보면, 통합 성능, 업그레이드 등의 이슈 때문에 새로운 TFS 구축하는 경우가 있다.

새로운 TFS 구축할 가장 중요한 사항이 기존 TFS 있는 데이터를 어떻게 TFS 옮길까하는 것이다.

 

Microsoft MSDN 라이브러리 사이트(http://msdn.microsoft.com/ko-kr/library/ms404879.asp ) 보면, TFS 이동에 대해 자세히 설명이 되어 있다.

그런데, 문제는 설명이 너무 복잡하다는 것이다.

여기에는 소스 코드뿐만 아니라 작업 항목, SharePoint 사이트, 보고서 TFS 모든 구성 요소를 이동시키는 경우를 고려한 절차가 포함되어 있기 때문이다.

 

만약, 소스 코드와 이력만 옮기려고 하는데도 그런 복잡한 절차를 따라야 할까?

 

TFS Integration Tools 사용하면 소스 코드 작업 항목을 비교적 쉽게 TFS 옮길 있다.

 

TFS Integration Tools TFS TFS 또는 TFS 3rd-party 솔루션과의 데이터 이관 동기화를 위한 도구이다.

예를 들면, TFS 2005 있는 데이터를 TFS 2008 마이그레이션한다든지, IBM Rational ClearCase 있는 데이터를 TFS 2010으로 마이그레이션한다든지 사용된다.

도구에 대한 자세한 내용은 http://visualstudiogallery.msdn.microsoft.com/f854dd59-8eeb-4673-8d9a-ae012989bfa2 (영문) 참조하기 바란다.

 

[Note]
사례로 현재 제가 기술지원 중인 사이트에서 도구를 사용해서 대의 기존 TFS에서 새로운 TFS 소스 코드와 이력을 마이그레이션하여 통합했습니다.

실제로 사용해 보니, 사용하기도 쉽고 마이그레이션도 되더군요

특히, 소스의 폴더 구조를 새롭게 정의하고, 이전 소스 코드들을 폴더 구조로 마이그레이션하는데도 유용했습니다.

  

글에서는 TFS Integration Tools 사용해서 TFS 2010에서 다른 TFS 2010으로 소스 코드와 이력을 마이그레이션하는 방법에 대해 설명한다.

 

먼저, http://visualstudiogallery.msdn.microsoft.com/f854dd59-8eeb-4673-8d9a-ae012989bfa2 에서 TFS Integration Tools 다운로드 받는다.

설치하는 방법은 그냥 Next, Next, … 누르면 되므로 생략!

 

다음은 TFS Integration Tools 초기 화면이다.

 

 

 

그럼, 이제 도구를 사용해서 소스 코드와 이력을 옮겨보자!

 

1.        시작->모든 프로그램->Microsoft Team Foundation Server Integration Tools->TFS Integration 차례로 선택

2.        TFS Integration Tools 초기 화면의 왼쪽 패널에서 Create New 클릭

3.        Choose a template 창에서 Team Foundation Server 폴더 클릭 , VersionControl.xml 파일 선택


4.        열기 클릭

5.        Configuration 화면에서 Left Source Configure.. 클릭 , TFS 2010 Migration VS Provider 클릭


6.        Connect to Team Project 창에서 옮길 소스가 있는 TFS 서버, 프로젝트 컬렉션, 프로젝트를 차례로 선택한 다음, 연결 클릭.


7.        Right Source Configure.. 클릭 , TFS 2010 Migration VS Provider 클릭

8.        Connect to Team Project 창에서 소스를 옮길 TFS 서버, 프로젝트 컬렉션, 프로젝트를 차례로 선택한 다음, 연결 클릭.

9.        Paths에서 왼쪽 버튼을 클릭하여 옮길 소스 코드가 있는 폴더(소스 폴더) 선택한 다음, 오른쪽 버튼을 클릭하여 소스 코드를 옮길 폴더(타깃 폴더) 선택

A.        만약, 옮길 폴더가 여러 개일 경우에는 Add New 버튼을 클릭하여 폴더 추가

B.         주의: 아래 그림에서와 같이 소스 폴더를 WiBoard/source, 타깃 폴더를 MyTeamProject/source 설정했을 경우, WiBoard폴더에 포함된 모든 폴더/파일이 MyTeamProject 폴더 밑으로 복사됨



10.     소스 폴더와 타깃 폴더 설정이 끝나면, Save to Database 클릭


11.     설정 내용이 Database 저장되고 나면, 화면이 다음과 같이 전환됨


12.     왼쪽 패널에서 Current Migration 밑의 Start 클릭

A.        소스 코드 이력의 마이그레이션이 시작된다.

13.     마이그레이션이 완료되면 화면 위쪽에 ‘Your current session completed successfully.’라는 문구가 나타남


14.     MyTeamProject/source 폴더 밑으로 소스 폴더에 포함된 폴더들이 마이그레이션된 것을 확인할 있음


15.     폴더뿐만 아니라 폴더/파일의 이력도 마이그레이션되었음

A.        TFS Integration Tools 마이그레이션 방법은 이전 TFS 버전 제어 이력대로 하나 하나 체크 인을 하는 같음.

B.         따라서, 아래 그림에서와 같이 새로운 TFS 체크 인된 이력의 설명에 이전 TFS 이력이 기록되어 있음.

 

 

외에도 TFS Integration 통해 작업 항목도 마이그레이션 있다.

그러나, TFS 모든 데이터를 마이그레이션 있는 것은 아니다. 마이그레이션 없는 것들도 많이 있다.

 

다음은 도구로 마이그레이션 없는 것들이다.

l  Check-in notes

l  Labels

l  Permissions

l  Workspaces

l  Pending Changes

l  Shelvesets

l  File encodings

l  Subscriptions

l  Test Cases

l  Check-in policies

l  Reports

l  Team Portal / SharePoint

l  Process Templates

l  Work item queries

l  Builds

l  Warehouse data

 

 감사합니다.

 webmars.

신고
Posted by webmars
VS 2010 ALM/TFS 20102011.07.04 16:38

TFS 2010 버전에서는 하나 이상의 Team Project(이하 TP)를 묶어서 하나의 그룹으로 만들 수가 있다. 이 그룹을 Team Project Collection(이하 TPC)이라고 한다.


 TPC는 논리적으로 독립된 하나의 TFS라고 생각하면 이해하기 쉽다. 즉, TPC 별로 사용자 그룹, 프로세스 템플릿, 변경 집합 번호, 작업 항목 번호 등을 공유하지 않는다.

TPC 별로 SQL Server에 하나의 데이터베이스가 생성되며, 같은 TPC 에 포함된 모든 TP의 데이터(소스 코드, 작업 항목, 문서, 테스트 결과 등)는 하나의 데이터베이스에 저장된다.


 실무에서는 솔루션을 개발하는 조직인 경우, 각 솔루션 별로 TPC를 만들어서 소스 코드, 산출물, 테스트 결과, 자원 등을 따로 관리한다. 또한, 개발 프로젝트에서는 각 프로젝트 별로 TPC를 만들어서 프로젝트 산출물들을 관리한다.

그런데, TFS 2005와 TFS 2008버전에는 TPC가 없었기 때문에, 솔루션이 다르거나 프로젝트가 달라도 사용자 그룹, 변경 집합 번호, 작업 항목 번호 등을 공유해야만 했다.

그렇다면, TFS 2005와 TFS 2008을 사용하던 조직에서 TFS를 2010 버전으로 업그레이드하고, 기존의 TP들을 여러 TPC로 나누는 방법은 없을까?

다행히도, TFS 2010은 이러한 기능을 제공하며, 이를 'Team Project Collection을 분할한다'라고 한다.


 TPC를 분할하는 절차를 간략하게 설명하면 다음과 같다.

(이 글에서는 TPC 분할에 대한 상세한 절차는 생략한다. 다만, 전체적으로 어떤 절차를 거쳐 TPC를 분할하는지 이해하는 것이 목적이다.

TPC 분할에 대한 자세한 내용은 http://msdn.microsoft.com/ko-kr/library/dd936158.aspx 를 참조한다.)
 

  1. TFS를 2010버전으로 업그레이드한다.
  2. 원래 TPC을 중지한다.
  3. 원래 TPC 데이터베이스를 백업한다.
  4. 다른 이름으로 TPC 데이터베이스를 복원한다.
  5. 원래 TPC 데이터베이스와 새 TPC 데이터베이스를 연결(attach)한다.
  6. 원래 TPC와 새 TPC에서 TP를 삭제한다.
    • 두 TPC에 포함된 TP가 서로 중복되지 않을 때까지 반복한다.
  7. 원래 TPC와 새 TPC를 시작한다.
  8. 원래 TPC와 새 TPC에 대한 사용자 및 그룹을 구성한다.


참고로, 위의 절차에는 Lab Management 및 SharePoint 사이트, 보고서, MS Project Server와 관련된 절차는 생략하였다.


그렇다면, 어떤 상황에서 TPC를 분할해야 할까? MS에서는 다음과 같은 상황에서 TPC 분할을 고려하라고 말하고 있다.

  • 조직의 부서 단위에 맞춰 컬렉션의 프로젝트를 배치하고 컬렉션의 프로젝트를 각 부서에서 개별적으로 소유하게 하려는 경우
  • 이전 버전의 Team Foundation Server에서 업그레이드한 후 컬렉션이 한 개뿐인 상황에서 보안이나 효과적인 업무 배치 등을 위해 프로젝트를 개별 컬렉션으로 구성하려는 경우
  • 컬렉션의 일부 프로젝트에 대한 소유권을 Team Foundation Server가 자체 배포되어 있는 원격 사무실로 이전하려는 경우. 이 시나리오를 수행하려면 먼저 컬렉션을 분할한 다음 분할된 컬렉션 중 하나를 원격 사무실 배포로 이동해야 합니다.


위와 같은 상황은 국내에서도 충분히 있을 수 있고, 그러한 상황에서 TPC를 분할하는 것이 TFS를 효과적으로 활용할 수 있다는데 공감한다.


감사합니다.


webmars.

신고
Posted by webmars
VS 2010 ALM/TFS 20102011.06.29 18:54

예전에 팀 탐색기 2005와 팀 탐색기 2008에서 TFS 2010에 연결하는 방법에 대해서 글을 올렸었는데요.
최근에 실무에서 그 글을 참조해서 적용하다 보니, 설치 순서가 명확하지 않아 다소 어려움을 겪었었습니다.
그래서, 그 부분을 보완하여 다시 정리하려고 합니다.


1. Visual Studio 2005 또는 2008부터 설치하는 경우
  1. Visual Studio를 설치합니다.
  2. Visual Studio 버전과 동일한 팀 탐색기를 설치합니다.
  3. Visual Studio 서비스 팩을 설치합니다.
    • Vista/Windows7에서 Visual Studio 2005를 사용하려는 경우에는 Windows Vista용 Visual Studio 2005 서비스 팩 1 업데이트도 설치합니다.
  4. TFS 2010 용 호환성 업데이트를 설치합니다.

위의 순서를 따르지 않았을 경우, Visual Studio에서 TFS 2010에 접속하는데 오류가 발생하게 됩니다. 특히, Visual Studio 서비스 팩을 먼저 설치하고 팀 탐색기를 설치하면 호환성 업데이트를 설치하더라도 TFS 2010에 접속할 수 없습니다.


2. 이미 Visual Studio 서비스 팩이 설치된 경우

  1. Visual Studio 버전과 동일한 팀 탐색기를 설치합니다.
  2. 설치된 Visual Studio 서비스 팩을 다시 설치합니다.
    • Vista/Windows7에서 Visual Studio 2005를 사용하려는 경우에는 Windows Vista용 Visual Studio 2005 서비스 팩 1 업데이트도 설치합니다.
  3. TFS 2010 용 호환성 업데이트를 설치합니다..


3. Visual Studio 2005 또는 2008에서 TFS 2010에 연결하기

호환성 업데이트를 설치한 후, 팀 탐색기에서 TFS 2010으로 연결하려면 Team Foundation Server 추가 화면Team Foundation Server 이름 항목에 다음과 같은 형식으로 TFS 서버 이름을 입력해야 합니다.


 

4. 필요 소프트웨어 다운로드 URL

다음은 위의 절차를 수행하는데 필요한 S/W를 다운로드 받을 수 있는 URL입니다.



감사합니다.

webmars.

신고
Posted by webmars
VS 2010 ALM/TFS 20102009.12.15 11:45

얼마전 TFS 2010을 설치했습니다. 기존에 TFS 2008이 설치된 Virtual PC Image에서 기존 TFS 2008을 지우고 TFS 2010을 설치하는 방식으로 진행했습니다 (TFS 2010 Beta 2 기준으로 아직 TFS 2008 -> 2010 upgrade가 지원되지 않고 있습니다). 

Windows Server, IIS, SQL Server, WSS 등을 설치하지 않아서 그런지 전체 설치 시간은 1시간 좀 넘게 걸렸습니다. 이 글에서는 제가 TFS 2010을 설치하면서 캡쳐해 놓은 화면을 소개하고자 합니다. 이 글을 보시고 나면 TFS 2010 설치 화면이 어떻게 생겼는지 아시게 될 것입니다. 

TFS 2010 설치에 대한 자세한 내용은 MS에서 제공하는 공식 설치 가이드를 참고하시기 바랍니다.

(http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2d531219-2c39-4c69-88ef-f5ae6ac18c9f)

현재는 TFS 2010 ISO 파일과 설치 가이드가 영문 버전만 나와 있습니다. 한글 버전이 나오면 TFS 2010 전체 설치 가이드를 올리겠습니다. 

자, 그럼 TFS 2010 설치 화면을 하나하나 살펴볼까요?

 


1) TFS 2010 구성 컴포넌트 설치


2) .NET Framework 4 Beta 2 설치 후, 재시작


3) TFS 2010 구성 컴포넌트 설치 계속


4) TFS 2010 구성 컴포넌트 설치 완료


5) TFS 2010 구성 시작


6) TFS 2010 구성 유형 선택 (여기서는 Advanced를 선택했습니다)


7) TFS Advanced 구성 마법사 시작


8) SQL Server 인스턴스 지정


9) TFS 서비스 계정 지정


10) TFS Website 생성 (TFS 2008과 달리, 사이트 URL 뒤에 /tfs가 붙습니다.)


11) 리포트 사이트 구성 여부 확인 (나중에 구성할 수도 있습니다.)


12) 리포트 서비스 인스턴스 및 URL 지정


13) SQL Server 분석 서비스 인스턴스 지정


14) 리포트 서비스 계정 지정


15) 팀 프로젝트 포탈 사이트 구성 여부 확인 (나중에 구성할 수도 있습니다.)


16) 팀 프로젝트 포탈 URL 지정


17) Team Project Collection 명 지정 (Team Project Collection은 TFS 2010에서 새로 생긴 기능입니다. 일종의 Team Project 집합이죠.)


18) TFS 구성 설정 확인


19) TFS 구성 준비 확인


20) TFS 구성 진행


21) TFS 구성 확인


22) TFS 구성 완료


23) TFS 관리 콘솔 (TFS 2010에서 새로 추가된 TFS 관리 도구입니다.)


감사합니다.

webmars.

신고
Posted by webmars

티스토리 툴바