I'm writing a WiX installer, with a common set of WiX sources for the 32 bit and 64 bit versions of the product.
The question is, should I use different Product Ids for the different versions?
To answer my own question, which it turns out was actually the wrong one to ask, the MSDN documentation for the ProductCode property says:
The 32-bit and 64-bit versions of an application's package must be assigned different product codes.
Turns out I was confused by the fact that I thought that the product code should never change. This is wrong. Again:
The ProductCode property is a unique identifier for the particular product release. This ID must vary for different versions and languages.
First I would make a guard like this for the 32 bit installer:
<Condition Message="This installer does not support 64-bit Windows! ">
<![CDATA[NOT VersionNT64]]>
</Condition>
and this for the 64 bit installer:
<Condition Message="This installer does not support 32-bit Windows! ">
<![CDATA[VersionNT64]]>
</Condition>
But back to your question. I recommend that you set Product Id to "*". This ensures that every build creates a new GUID. You can always find this GUID, if you want to create a patch, using Orca.
The important value is the UpgradeCode. This GUID creates a link between versions. I will recommend one UpgradeCode for all your 32 bit installers and another UpgradeCode for all you 64 bit installers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With