시나리오 :MSBuild/TFS2008을 사용하여 비 데스크탑 빌드를 강제 실행하는 방법?
가 나는 TFS가 구축이 여러 목표를 오버라이드가 (TFS2008) : BuildNumberOverrideTarget, AfterGet, BeforeCompileConfiguration, AfterCompileConfiguration, AfterCompile, AfterDropBuild 및 AfterEndToEndIteration을. 모든 것이 잘 작동합니다.
하지만 이제는 모든 CI를 Jenkins 서버로 이식하고 있습니다.
정상 나는이 매개 변수를 사용하여 TFSBuild.proj를 호출하는 MSBuild에서 플러그인을 사용/fileLogger /fileLoggerParameters:LogFile=TFSBuild_DesktopBuild.log;Create;Encoding=UTF-8;verbosity=normal /상세 :
문제 설명 :
내 문제는 사용자 지정 작업 중 일부가 실행되고 있다는 것입니다 : BeforeCompileConfiguration, AfterCompileConfiguration, AfterCompile.
위에서 보듯이 BuildNumberOverrideTarget, AfterGet, AfterDropBuild 및 AfterEndToEndIteration이 실행되어야합니다.
컴파일 작업 및 사용자 지정 작업 만 실행중인 것처럼 보입니다. TFS에서 트리거되는 빌드는 비 데스크탑 빌드로 처리되고 Jenkins에서 트리거되는 빌드는 데스크톱 빌드로 처리됩니다.
지금까지 시도한 내용.
로컬 .cmd 파일에서 빌드를 실행하면 동일한 문제가 발생합니다. 그래서 IsDesktopBuild 속성에 문제가 있다고 생각합니다. 이 msdn link의 추가 읽기 나에게
"수행 (그들이 사용할 수있는 경우) 만 컴파일 및 테스트"
을 읽을 때의 단서를 주었다./fileLogger /fileLoggerParameters:LogFile=TFSBuild_DesktopBuild.log;Create;Encoding=UTF-8;verbosity=normal /상세 : 일반 /부동산 그래서 나는 DesktopBuild을 강제로 재산을 자신을 추가하는 시도 : IsDesktopBuild = 사실
그러나 동작은 동일에만 실행 작업입니다 : BeforeCompileConfiguration, AfterCompileConfiguration, AfterCompile
그래서 제 질문은 두 배 :
- 사람은 명령 줄에서 데스크톱 빌드를 강제하는 방법을 알고?(/속성 : IsDesktopBuild = true으로 충분하지 않음)
- IsDesktopBuild가 문제가 아닌 경우 일부 사용자 지정 작업이 트리거되지 않는 이유에 대한 단서가 있습니까?
그런 다음 어떻게 강제로 이러한 작업 (BuildNumberOverrideTarget, AfterGet, AfterDropBuild 및 AfterEndToEndIteration)을 실행해야합니까? –
/속성 : IsDesktopBuild = false –
/property : IsDesktopBuild = false 대상 (BuildNumberOverrideTarget, AfterGet, AfterDropBuild 및 AfterEndToEndIteration)을 실행하지 마십시오. –