I'm trying to write a package that will install a patch if necessary, but install the base version if it doesn't exist, but I'm running into problems with the evaluation of check conditions. Specifically, Adobe Acrobat, which requires that you first install up to the most recent quarterly release, and then apply out-of-cycle patches on top of that. So I can go none->10.1.5->10.1.6, or 10.1.5->10.1.6. What I have so far: <!-- install the base version plus the latest quarterly if version is less than current quarterly; eg upgrade if 10.1.0 but not 10.1.5 --> <install workdir='%LOCALCACHE%\%PKG_PATH%' cmd='msiexec /qb- /i AcroPro.msi PATCH="%LOCALCACHE%\%PKG_PATH%\%ADOBE_QUARTERLY_FILE%" DISABLEDESKTOPSHORTCUT=YES EULA_ACCEPT=YES DISABLE_ARM_SERVICE_INSTALL=YES /log %LOG_INSTALL% /norestart'> <condition> <check type='logical' condition='or' > <check type='logical' condition='not' ><check type="uninstall" condition="exists" path="%ADOBE_REGKEY%" /></check> <check type="uninstall" condition="exists" path="%ADOBE_REGKEY%" value="%ADOBE_QUARTERLY_VERSION%" /> </check> </condition> </install> <!-- if latest quarterly, apply OOC patches in correct order. This section has to be maintained manually. --> <install workdir='%LOCALCACHE%\%PKG_PATH%' cmd='msiexec /qb- /p AcrobatSecUpd1016.msp /log %LOG_PATCH% /norestart'> <condition><check type="uninstall" condition="versionequalto" path="%ADOBE_REGKEY%" value="10.1.5" /></condition> </install> What actually happens, on a from-scratch install, is that 10.1.5 installs, but 10.1.6 patch doesn't. On a computer that has 10.1.5 installed already, 10.1.6 installs. What seems to be happening is that WPKG is evaluating the results of the uninstall check once, and using it twice. So in the "bare metal" case, the full install goes off, but the patch doesn't install because the uninstall check isn't re-evaluating; it's using the cached value. So, if I'm understanding this correctly.. is there any way to force the re-check of the uninstaller key for the second check rather than using the cached version? |