2009-05-08 8 views
0

Ich habe einen Build, der in TFS TeamBuild ausgeführt wird. Ich möchte eine Eigenschaft an das MSBuild übergeben, das für jedes von TFSBuild.proj erstellte Projekt ausgeführt wird.Übergeben Sie einen Wert von TeamBuild an MSBuild

Beispiel:

TFSBuild.proj

<PropertyGroup> 
    <Version>0.0.0.0</Version> 
</PropertyGroup> 

<Target Name="BuildNumberOverrideTarget" 
     DependsOnTargets="AfterInitializeWorkspace"> 

    <!--Code that loads the version from a file (removed).--> 

    <PropertyGroup> 
    <!--Save off the version.--> 
    <Version>$(TxCompleteVersion)</Version> 
</PropertyGroup> 

MyWIXProjectFile.wixproj

<Target Name="BeforeBuild"> 
<PropertyGroup> 
    <!--If Version is defined then use that. 
    Else just use all zeros to show that this is a developer built version--> 
    <CurrentVersion Condition="'$(Version)' == ''" >0.0.0.0</CurrentVersion> 
    <CurrentVersion Condition="'$(Version)' != ''" >$(Version)</CurrentVersion> 
</PropertyGroup> 
<Message Condition="'$(Version)' == ''" 
     Text="Version info is empty (i.e. a developer build). Version set to $(CurrentVersion)"/> 

</Target> 

Wenn die MyWixProjectFile.wixproj die zeigt Nachricht gebaut wird, dass die $ (Version) wird leer gedruckt wird jedes Mal.

Gibt es eine Möglichkeit, dass ich die Projektdatei erhalten kann, um die TFSBuild.proj Eigenschaften zu sehen?

Vaccano

+0

Sie haben überprüft, dass die Version in TFSBuild.proj nicht korrekt ist? –

+0

Ja habe ich. Es wird an vielen anderen Orten verwendet und es korrigiert die ganze Zeit. – Vaccano

Antwort

0

Dies wird über die Eigenschaften Metadaten im SolutionToBuild Tag getan. Zum Beispiel:

<ItemGroup> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisOne.sln"> 
     <Targets></Targets> 
     <Properties>Change=True</Properties> 
    </SolutionToBuild> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisToo.sln"> 
     <Targets></Targets> 
     <Properties>Change=True</Properties> 
    </SolutionToBuild> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)\DontChangeThis.sln"> 
     <Targets></Targets> 
     <Properties>Don'tChange=False</Properties> 
    </SolutionToBuild> 
    </ItemGroup> 
0

Im kein Experte in Wix, aber ich habe diese finden und haben Sie es versuchen könnte.

Setting properties for WiX in MSBuild

+0

Leider hilft mir das nicht. Ich habe bereits einen Prozess von MSBuild zu WIX zu gehen. Es kommt von TeamBuild zu MSBuild (auf Projektebene), dass ich feststecke! Danke für die Post obwohl Vaccano – Vaccano

0

Option 1

Verwenden MSBuild direkt MyWIXProjectFile.wixproj aufrufen und übergeben Version als Eigentum

Option 2

Auszug aus Build von Wix heraus sein eigenes selft-Skript enthielt und dann MSBuild verwendet, um direkt aufzurufen und alle erforderlichen Eigenschaften zu übergeben. Ich habe Blog mit der vollständigen Implementierung dieses bei http://blog.newagesolution.net/2008/06/how-to-use-msbuild-and-wix-to-msi.html tun, die für Sie von Interesse sein könnte.

Verwandte Themen