TeamBuild- 빌드 타임에 컴파일 할 프로젝트를 선택할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/806540

  •  03-07-2019
  •  | 
  •  

문제

TeamFoundation을 사용하여 빌드 프로세스를 자동화하고 있으며 빌드에서 .proj 파일에 따라 컴파일 할 프로젝트를 선택해야합니다. 전체 시나리오는 다음과 같습니다.

2 개의 웹 사이트가 포함 된 솔루션을 컴파일하기 위해 .SLN 파일을 사용하는 .proj 파일이 있습니다. .SLN 파일은 릴리스 구성에서 두 웹 사이트를 모두 컴파일하도록 구성되었습니다.

내 목표는 빌드 유형 당 1 개의 웹 사이트 만 컴파일하는 것입니다. 즉, BuildType1이 웹 사이트 1을 컴파일하고 BuildType2가 웹 사이트를 컴파일하기를 원합니다.

웹 사이트 중 하나를 컴파일 할 수없는 방식으로 .SLN을 "수정"할 수 있습니까? 자동화 된 프로세스이므로 하나의 웹 사이트 만 컴파일 할 때마다 .SLN을 수동으로 변경할 수 없습니다.

도움이 되었습니까?

해결책

tfsbuild.proj 파일의 SolutionTobuild 섹션을보십시오.

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>

다른 팁

빌드를 제어 할 수있는 두 가지 주요 방법이 있습니다.

  • 팀 탐색기에서 별도의 빌드 유형을 만듭니다. 이것은 완전히 독립적 인 tfsbuild.proj 파일이 있으므로 완전히 다른 방식으로 동일한 코드 기반을 구축 할 수 있습니다. SolutionTobuild를 설정하여 원하는대로 설명한대로 원하는대로 작성하십시오.

  • 하나의 빌드 유형을 사용하고 TFSBUILD.PROJ를 설정하여 제작 된 내용을 제어하기 위해 속성을 사용합니다 (이는 MSBUILD 스크립트를 이해해야합니다). 큐에서 새 빌드 대화 상자에서 /p : 명령 줄 플래그를 사용하여 필요한대로 속성을 설정할 수 있습니다. 예를 들어 "/p : incrementalget = false; ycrementalBuild = false; forceget = true"는 정상적으로 증분 빌드가 전체 재건을 수행하도록 강요합니다. 이것은 오두막 정상 상황에 유용하지만 매일 매개 변수를 매번 수작업으로 설정해야하므로 일상적인 빌드에 적합한 아이디어는 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top