2009-03-03 4 views
0

분산 된 응용 프로그램 제품군의 개별 구성 요소를 만드는 빌드 스크립트가 3 개 있습니다. 그들은 다음과 같이 폴더 구조에 저장됩니다여러 TFS 빌드 스크립트간에 속성을 공유하려면 어떻게합니까?

LegacyComponents - C#에서 재 작성 구성 요소
데이터베이스
TeamBuildTypes
- "라이브"하지만 VB6 코드
NewComponents 를 교체하는 과정에서 각 빌드 폴더에서 └ DatabaseBuild

└ LegacyBuild
└ 새로 건조
나는 SCRI이 pt는 TFSBuild.proj라는 이름입니다.

빌드가 별도이므로 빌드 번호가 각각 다릅니다. 레이블을 "가져올"수 있고 전체 일관된 코드 집합을 가질 수 있도록 각 레이블을 모두 묶는 문자열로 레이블을 지정해야합니다.

KitNumber 속성이있는 KitNumber.targets라는 파일을 만들어서 TeamBuildTypes 폴더에 넣었습니다. 나는 각 빌드 스크립트에 다음 줄을 넣어 :

<Import Project=".\..\KitNumber.targets"/>

는 이제 한 곳에서 키트 번호를 변경할 수 있으며 모든 빌드에 적용해야한다.

원본은 이미 TFS에서 가져 왔지만 빌드 스크립트가 포함 된 디렉터리의 내용 만 가져 오기 때문에 빌드 컴퓨터에서 실패하기 때문에 내 dev 상자에서 작동합니다.

그래서 각 스크립트에서 사용할 수 있도록 공유 속성을 저장합니까? 내가 적용 할 라벨을 포함하는 단일 라인 텍스트 파일을 사용

답변

0

:

<Target Name="ApplyKitNumberLabel" Condition="$(KitNumber) != ''"> 

    <ReadLinesFromFile File="$(WorkspaceRoot)\TeamBuildTypes\KitNumber.txt"> 
    <Output TaskParameter="Lines" 
     PropertyName="KitNumber" /> 
    </ReadLinesFromFile> 

    <Label TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
     Files="$(WorkspaceRoot)\$(BranchName)\LegacyComponents" 
     Name="$(KitNumber)" 
     Recursive="True" /> 

</Target>