최선의 방법 : 기존 Team Foundation Server (TFS) 솔루션 재구성 1 앱 2 앱 3 외관

우리 부서에서는 통합 커뮤니케이션 서버를 위해 여러 개의 작은 애드온을 개발하고 있습니다. 버전 관리 및 분산 개발에는 Team Foundation Server 2012를 사용합니다.

그러나 모든 응용 프로그램 및 라이브러리에 대해 하나의 큰 TFS 솔루션이 있습니다.

  • 주요 솔루션
    • 응용
      • 앱 1
      • 앱 2
      • 앱 3
    • 외관
    • 라이브러리
      • Lib 1
      • Lib 2
    • 도구

“응용 프로그램”경로에는 모든 주요 응용 프로그램이 포함됩니다. 그것들은 서로 의존하지 않지만 라이브러리와 외부 프로젝트에 의존합니다.

“외부”경로에는 응용 프로그램 및 라이브러리에서 참조되는 일부 외부 DLL이 포함되어 있습니다.

라이브러리 경로에는 일반적으로 사용되는 라이브러리 (UI 템플릿, 도우미 클래스 등)가 포함됩니다. 이들은 서로 의존하지 않으며 라이브러리 및 도구 프로젝트에서 참조됩니다.

도구 경로에는 설정 도우미, 웹 서비스 업데이트 등과 같은 일부 도우미 프로그램이 포함되어 있습니다.

이제이 구조를 변경하고 싶은 몇 가지 주요 사항이 있습니다.

  • 우리는 서버 빌드를 사용할 수 없습니다.
  • 이와 같은 솔루션 구조로 스프린트, 장애 등으로 TFS 스크럼 관리를 관리하는 것은 불편합니다.
  • 모든 개발자는 항상 솔루션의 모든 프로젝트에 액세스 할 수 있습니다.
  • Visual Studio에서 실수로 [F6]을 누르면 전체 빌드가 너무 오래 지속됩니다 …

이 솔루션에서 무엇을 변경 하시겠습니까? 이러한 프로젝트를 더 작은 솔루션으로 나누는 방법과 솔루션 구성 방법

첫 번째 방법은 각 응용 프로그램, 라이브러리 및 도구마다 하나의 TFS 프로젝트를 만드는 것입니다. 그러나 App 2에 항상 최신 버전의 Lib 1이 포함되도록하려면 어떻게해야합니까? Lib가 변경되는 즉시 Lib 1에서 변경 사항을 모니터링하고 App 2를 수동으로 업데이트해야합니까? 아니면 어떻게 든 Visual Studio가 항상 최신 버전의 외부 프로젝트를 사용하도록 강요 할 수 있습니까?

편집 : TFS에는 하나의 TFS 팀 프로젝트가 포함 된 하나의 TFS 팀 프로젝트 콜렉션이 있습니다. 팀 프로젝트에는 하나의 큰 Visual Studio 솔루션이 포함되어 있으며 여기에는 여러 VS 프로젝트가 포함 된 폴더가 여러 개 포함되어 있습니다 (위 구조 참조).

내 질문은 이제 어떻게 재구성 할 것인가입니다.

  1. TFS 팀 프로젝트
  2. VS 프로젝트


답변

하나의 TFS 팀 프로젝트를 고수하십시오. 업그레이드하려고 할 때 여러 개를 사용하는 것은 고통스럽고 팀 프로젝트 작업 항목을 교차시킬 때 약간의 제한이 있습니다. 대신 영역 및 반복을 많이 사용해야합니다.

VS 솔루션을 주요 애플리케이션 당 하나씩 여러 솔루션으로 분할하십시오. 이렇게하면 빌드 서버뿐만 아니라 로컬 빌드 속도가 빨라집니다.

TFS2012에는 Teams라는 새로운 개념이 있으며 응용 프로그램 당 팀을 만들고 각각에 대한 기본 반복 및 백 로그를 설정합니다. 이렇게하면 각각에 대한 백 로그를 관리하거나 루트 팀에서 롤백 된 백 로그를 볼 수 있습니다. 그런 다음 애플리케이션 레벨에서 또는 자신에게 적합한 것에 따라 전체적으로 스프린트를 관리 할 수 ​​있습니다.

아직없는 모든 타사 참조 라이브러리에 대해 NuGet 패키지를 만듭니다. 개인 저장소 (windows 공유 폴더)에 저장하고 모든 솔루션을 마우스 오른쪽 버튼으로 클릭하고 활성화하여 패키지 복구 기능을 활성화하십시오 (또한 패키지 복구는 설정과 비교하여 패키지를 다운로드 할 수 있습니다).

공유 내부 라이브러리가있는 경우 해당 라이브러리에 대한 NuGet 패키지도 작성하고 해당 라이브러리 만 포함하는 vs 솔루션을 작성하십시오. 빌드 후 명령을 추가하여 너겟 패키지를 만들거나 tfs 빌드 템플릿을 확장하여 수행하십시오 (이미 수행하는 템플릿이 많이 있습니다).