2009-03-03 6 views
0

Ich habe 3 Build-Skripte, die separate Komponenten einer verteilten Suite von Anwendungen erstellen. Sie werden in einer Ordnerstruktur wie folgt gespeichert:Wie teile ich eine Eigenschaft zwischen mehreren TFS-Build-Skripten?

LegacyComponents - VB6-Code, der "live" ist aber in den Prozess der
NewComponents ersetzt - Rewritten Komponenten in C#
Datenbank
TeamBuildTypes
└ LegacyBuild
└ Newbuild
└ DatabaseBuild

In jedem Build-Ordner habe ich eine scri pt mit dem Namen TFSBuild.proj.

Da die Builds getrennt sind, erhalten sie jeweils eine eindeutige Build-Nummer. Ich muss jeden mit einer Zeichenfolge beschriften, die sie alle miteinander verbindet, so dass ich ein Label "bekommen" und den gesamten konsistenten Code-Satz haben kann.

Ich habe eine Datei namens KitNumber.targets mit einer KitNumber-Eigenschaft erstellt und in den Ordner TeamBuildTypes eingefügt. Ich habe dann die folgende Zeile in jedem Build-Skript:

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

Ich soll nun in der Lage sein, die Kit-Nummer an einem Ort zu ändern und habe sie in jedem Build angewandt.

Das funktioniert auf meiner Dev-Box, weil die Quelle bereits von TFS heruntergefahren wurde, aber auf der Build-Maschine fehlschlägt, weil nur der Inhalt des Verzeichnisses, das das Build-Skript enthält, heruntergefahren wird.

Wo kann ich die gemeinsame Eigenschaft speichern, damit ich sie in jedem Skript verwenden kann?

Antwort

0

eine Textdatei mit einer einzigen Zeile Mit dem Etikett enthalten, die ich anwenden möchten:

<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> 
Verwandte Themen