What you can do is create a c / C ++ program that generates a Version.wxi file that looks like this:
<?xml version="1.0" encoding="utf-8"?> <Include> <?define ProductVersion.Major="4"?> <?define ProductVersion.Minor="4"?> <?define ProductVersion.Revision="8"?> <?define ProductVersion.Build="33"?> <?define ProductVersion="4.4.8.33"?> .... </Include>
You can then enable and use these version numbers in the main wxs file:
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <?include Version.wxi ?> <?define UpgradeCode="GUID"?> <Product Id="*" Name="$(var.ProductName) $(var.ProductVersion.Major).$(var.ProductVersion.Minor)" Version="$(var.ProductVersion)" Language="1033" Manufacturer="$(var.Company)" UpgradeCode="$(var.UpgradeCode)">
Create Version.wxi just before compiling your wix project. For example, modify the .wixproj file to add a target that does this.
source share