Thanks once again for an insightful reply. In the custom action for the uninstall, I put ProgramFilesFolder as the “Working Directory” just to put something there. The install finds the complete path to the WISE uninstall in the registry, entered as “Filename & command line”. I tried [%ProgramFiles] (as well as [%ProgramFiles%] and[ProgramFiles]). I got the message “The directory entry '[%ProgramFiles]' does not exist in Directory table”. Then I tried leaving “Working Directory” blank. I have the complete file path for the WISE uninstall in “Filename & command line”, having picked it up from the registry. With this configuration, however, the WISE uninstall never ran, it seems the custom action wasn’t executed. So maybe there’s no way to do it before CostFinalize since there’s nothing in the Directory Table, and the InstallShield uninstall doesn’t work after it.
I probably don’t understand your launcher exe solution. I would create my own executable that would detect the WISE installation, run the WISE uninstall, and then run the InstallShield install. But how would I uninstall my launcher? Or maybe you mean an InstallShield install that deals with the WISE uninstall first, and then runs my current InstallShield install? Then I'm not sure how the launcher is different from my custom action.
I’m sure I don’t understand your other solution, decrementing the SharedDllRefcount in the msi file. Is that done in the InstallShield IDE? I’m using the compressed version. I've noticed that when the InstallShield uninstall doesn't work, it doesn't uninstall registry data under HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows->CurrentVersion->SharedDlls.
Thanks again...