I am trying to package a plotting program for our Architecture department. The package removes an existing plotting printer forces a reboot, and then completes 2 custom actions after the reboot to install the new printer, finally scheduling a final reboot. The problem I am having is that the package works fine on install but fails during uninstall because it is trying to execute the custom actions. When I attempted to add a NOT(REMOVE="ALL") it skips the ca's completely. The log doesn't say conditions not met skipping so I don't know
The sequence Looks like
Remove Legacy
Remove Printer (DLL CA)
Remove Existing Products
Install Initialize
Publish Product
Force Reboot
Run CA
Schedule Reboot
Install Finalize
The Forecereboot executes only if it finds and existing legacy or this is a major upgrade:
ACROPLOTUNINSTALLSTRING <> null or IS_MAJOR_UPGRADE
The ca's both have the same conditions but execute either after the reboot as would be the case if this was a legacy upgrade or msi major upgrade or if the sytem search for the legacy returned nothing or this wasn't an upgrade.
AFTERREBOOT or ((ACROPLOTUNINSTALLSTRING = NULL) or (NOT(IS_MAJOR_UPGRADE))
That worked fine; however this would execute during an uninstall. So I attempted to add the Not(REMOVE="ALL"):
(Not(REMOVE="ALL")) AND (AFTERREBOOT or ((ACROPLOTUNINSTALLSTRING = NULL) or (NOT(IS_MAJOR_UPGRADE))))
Now it doesn't run at all.
Any help would be appreciated, I have attached a VMWare movie of the install and the log.