Passer une valeur de TeamBuild à MSBuild
-
20-08-2019 - |
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
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.
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.