I have a problem where an upgrade trigger does not always occur. I need to uninstall the prior installed instance no matter the version. Example: I need it to uninstall 1.1.0.0 when installing to 2.1.0.0. It, instead, installs as a side-by-side. The problem, I presume, is the uninstall is bypassed when either of the two most significant fields (xx.yy) of the ww.xx.yy.zz version differ from the ww.xx.yy.zz that is previously installed.
Here is my configuration: I have configured AI so that it does not install side-by-side. I have kept the UpgradeCode the same constant string in all the versions of the aip files. From your blogs, I also gleemed that the .aip also needs a 1025 in the AI_NEWERPRODUCTFOUND ROW. As shown in the second ROW of the MsiUpgradeComponent section below:
Upgrading 1.1.1.1 to 1.1.1.2 works; it first uninstalls; then installs 1.1.1.2
Upgrading 1.1.1.1 to 1.1.2.o works; it first uninstalls; then installs 1.1.1.2
Upgrading 1.1.1.1 to 1.2.0.0 fails to uninstall.
<COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
<ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="1025" ActionProperty="AI_NEWERPRODUCTFOUND"/>
</COMPONENT>
But adding 1025 did not fix the problem.
Is there a way I could add a compound test for prior version?
For example,
UpgradeCode="ongstringofHEXDigitsA or "longstringofHEXDigitsB"
Any advice is much appreciated.