Question

J'ai une version en cours d'exécution dans TFS TeamBuild. Je souhaite transmettre une propriété de cette propriété au MSBuild exécuté pour chaque projet créé par TFSBuild.proj.

Exemple:

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>

Lorsque MyWixProjectFile.wixproj est construit, le message indiquant que la $ (Version) est vide est imprimé à chaque fois.

Est-il possible que le fichier de projet affiche les propriétés TFSBuild.proj?

Vaccano

Était-ce utile?

La solution 2

Ceci est effectué via les métadonnées de propriétés de la balise SolutionToBuild. Par exemple:

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

Autres conseils

Je ne suis pas un expert en Wix, mais j’ai trouvé cela et je pensais que vous pouviez essayer.

Définition des propriétés de la WiX dans MSBuild

Option 1

Utilisez MSBuild pour appeler directement MyWIXProjectFile.wixproj et passer Version en tant que propriété

Option 2

Résumez la construction de wix dans son propre script, puis utilisez MSBuild pour appeler directement et transmettre toutes les propriétés nécessaires. J'ai un blog avec une implémentation complète qui le fait à http://blog.newagesolution.net/2008/06/how-to-use-msbuild-and-wix-to-msi.html qui pourrait vous intéresser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top