2011-08-22 1 views
1

TeamCity 빌드 서버에 몇 개의 C++ 프로젝트를 체크인 할 때 코드를 빌드하도록 설정된 에이전트가 두 개 있습니다. 이제, 우리는빌드 서버의 여러 Windows SDK 버전 처리

그것은 체크인 여전히 원활 소스 와 함께 작동 할 수 있도록 대규모로의
  • 이후 윈도우 SDK에 처리 종속성에 관한 몇 가지 문제로 실행했습니다.
  • 몇 가지 문제없이 동시에 설치할 수 없습니다.

TeamCity 에이전트를 설정하는 가장 쉬운 방법은 Windows SDK를 설치하는 것입니다. 그러나 두 버전을 설치하면 이전 설치의 레지스트리 항목을 덮어 쓰는 것처럼 보이기 때문에 Windows SDK에 문제가 있습니다. 또 다른 방법은 설치 파일을 체리 선택하여 rsync-server 등에 넣는 것입니다.하지만 Windows SDK 설치 프로그램은 Visual Studio 바이너리 등을 수정하는 것으로 보이므로 좋지 않습니다. 필자는 또한 마이크로 소프트와 확인한 결과, SDK 설치시 체리 피킹 파일에 대해 강하게 제안했다.

TeamCity에서 C++ 프로젝트를 어떻게 설정했으며이 상황에서 어떤 것을 제안합니까?

+0

여러 SDK를 설치하면 어떤 문제가 있습니까? – Cechner

+0

예를 들어 parallell 빌드를 실행할 때 분명히 작동하지 않을 전역 레지스트리 항목을 덮어 씁니다. – vidstige

답변

0

SDK의 버전이 사용하는 각 머신 (개발자와 빌드 머신 모두)의 동일한 위치에 설치되어 있다면 현재 SDK를 설정하는 빌드 스크립트의 시작 단계를 추가 할 수 있습니다 사용하기위한. 이 작업을 수행 할 수 있습니다 :

  1. 는 레지스트리 설정을 사용하는 등
  2. 당신이 lib에 대한 프로젝트 파일에서 참조하는 환경 변수를 사용하여 빈
  3. (당신은 하나의 빌드 언제든지 가고있는 경우)

TeamCity를 사용하지는 않았지만 이전에이 작업을 꽤 잘 보았습니다.

+0

나는 그것이 그랬 으면 좋겠다. 나는 항상 폴더에 설치하는 부스트 라이브러리와 같은 환경 변수를 사용한다. Windows SDK는 레지스트리, systemfiles 및 심지어 설치 한 Visual Studio 바이너리를 수정합니다. ... -S – vidstige

+1

레지스트리 설정을 변경하면 실행 가능성이있는 것으로 보입니다. 물론 평범한 빌드를 방해 할 수는 있습니다. – vidstige