2013-07-25 8 views
3

TFS 2012에서 빌드 정의 계층을 만들려면 어떻게해야합니까?여러 TFS 2012 빌드 정의를 단일 빌드 정의에 연결하는 방법

현재 여러 하위 스크립트 (.cmd)를 호출하는 마스터 빌드 스크립트 (.cmd)가 있습니다.
이것을 TFS 빌드 시스템으로 마이그레이션하고 계층 구조를 유지하려고합니다.

TFS 2012 빌드 시스템을 사용하여 이것이 가능한지 알 수없는 것 같습니다. 여기

무슨 말인지입니다 : 모든 구성 요소에 대한 MasterBuildScript.cmd 전화 componentscript1 전화 componentscript2 전화 componentscript3 전화 ... 전화 포장 루틴

는 빌드 솔루션 componenta1을 componentscript1.cmd 빌드 솔루션 componenta2 빌드 솔루션 구성 요소 3 ...

componentscript2.cmd 빌드 솔루션 componentb1 빌드 솔루션 componentb2 빌드 솔루션 componentb3 ...

이상의 구성 요소 ...

표준 TFS 2012 빌드 정의와이 할 수있는 방법이 있나요? - Bruce

+0

물론 사용자 정의 코드/활동을 작성하여 마스터 빌드 정의 내에서 여러 빌드 정의를 호출 할 수 있습니다. 그러나 정확하게 당신을 acheieve하려고합니까? CMD 파일이 솔루션 파일을 컴파일하는 중일 때 왜 계속 사용하고 싶습니까? 의존성 또는 다른 것을 처리하기 위해이 하위 스크립트를 수행하고 있습니까? 여러 빌드 정의를 유지해야하는 상황은 무엇입니까? 자세히 설명하십시오! – Isaiah4110

답변

0

맞춤 코딩을 수행하지 않고이를 수행 할 수있는 방법이 있습니다. 그러나 빌드 프로세스 템플리트에 약간의 추가 작업을해야합니다. 코드를 사용하지 않고 Windows Workflow Foundation을 사용합니다.

기본적으로 현재 가지고있는 각 .cmd 빌드 스크립트에 대해 TFS 팀 빌드 정의를 설정해야합니다. 하나는 마스터 빌드 용이고 다른 하나는 각 구성 요소 빌드 용입니다. 여기에 관련된 실제 작업은 .cmd 스크립트를 TFS 빌드 정의로 변환하는 것입니다.

그런 다음 "하위"빌드를 자동 큐에 저장하려면 마스터 빌드 정의에 대한 프로세스 템플릿을 편집하고 "InvokeProcess"활동을 추가하면됩니다. 이렇게하면 빌드 프로세스의 일부로 명령 줄에 쉘을 사용할 수 있습니다. TFSBuild.exe 명령 줄 유틸리티를 사용하여 "자식"빌드를 시작할 수 있습니다. http://msdn.microsoft.com/en-us/library/aa337622(v=vs.90).aspx

이전에 어셈블리의 핵심 집합에 대한 빌드가있는 비슷한 것을 사용했습니다. 그런 다음이 빌드는 해당 어셈블리에 대한 종속성이있는 모든 빌드를 시작합니다.

+0

예 InvokeProcess를 사용하고 CMD 스크립트를 호출하면이 작업을 수행 할 수 있습니다. 그러나 여러분이 언급 한 해결책은 많은 단점이 있습니다. 말하자면, CMD 스크립트를 호출하는 빌드 정의를 작성한 다음 TFS에서 발생한 일을 완전히 제어 할 수 없습니다. 당신은 새로운 프로세스를 시작합니다. 실행중인 빌드를 중지하려면 TFS에서 빌드를 중지하면 멈추지 않을 것입니다. 배치 파일이 계속 실행 중일 수 있습니다. 이것은 단지 하나의 예일뿐입니다. – Isaiah4110

+0

그게 근본 문제를 알고 싶었고 그 다음 해결책을 제안하고 싶었던 이유입니다. TFS build def에서 CMD 스크립트를 실행하는 것이 최선의 해결책은 아닙니다. – Isaiah4110

+0

빌드 정의 내에서 기존 .cmd 스크립트를 호출하는 것은 내가 제안한 것이 아니 었습니다. 네가 맞아, 그건 끔찍한 생각이야. 내 반응을 다시 읽는다. 어떻게 그런 식으로 해석했는지 알 수있다. 이러한 .cmd 스크립트는 원본 .cmd 스크립트와 동일한 작업을 수행하는 TFS 빌드 정의로 변환해야합니다. InvokeProcess 작업을 사용해야하는 유일한 방법은 TFSBuild.exe를 통해 "자식"빌드를 시작하는 것입니다. –

관련 문제