I use Purely WiX approach to making patches and am trying to make a single MSP work for 2 different MSI's. I have v1.1 MSI and v1.2 MSI, and plan to create an MSP using v1.2 MSI, so that the MSP can be used for both v1.1 and v1.2.
I set Validate/@ProductId='no'
as its description says:
Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.
However, it only works for v1.2. So far, the only way I was able to work was to add 2 TargetProductCode/@Id
as below.
Is this a bug for Validate/@ProductId
? Or Is that the right way to do?
<Media Id="5000" Cabinet="RTM.cab" >
<PatchBaseline Id="RTM" >
<Validate ProductId='no' ProductLanguage='no' ProductVersion="Update" ProductVersionOperator='LesserOrEqual' UpgradeCode='no' />
</PatchBaseline>
</Media>
<!-- Why do I need this when Validate/@ProductId='no'? -->
<TargetProductCodes Replace='no'>
<TargetProductCode Id='{xxx}' />
<TargetProductCode Id='{xxx}' />
</TargetProductCodes>
<PatchFamilyRef Id="myRollup"/>
There is a same question but both didn't work.