I created three builds of my setup: verion 1.0, version 1.1 and version 1.2
I created a patch from version 1.0 to version 1.1
Installed version 1.2 on a clean test machine, tried to apply the patch.
Result: patch was applied without warning or error messages, i.e. product was downgraded from 1.2 to 1.1.
Desired result: Patch would not be installed over newer version.
In the TargetImages table in the .pcp file I have entered 0xc22 in field ProductValidateFlags in the row for version 1.0.
0xc22 = MSITRANSFORM_VALIDATE_PRODUCT +
MSITRANSFORM_VALIDATE_UPDATEVERSION +
MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION + MSITRANSFORM_VALIDATE_UPGRADECODE
I expected that MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION would make sure that the transform would only be applied to older versions of the product, as msi help explains: "Applied version > base version"
(Actually I did this with the patch wizard in IPWI and selected new version > existing version )
(All setup packages use the same product and upgrade code. The package code and product version have been changed for each build.)
Has anyone succeeded in preventing a patch from downgrading an existing installation? Is anyone using transforms and can tell me what I'm doing wrong?