If I install a package that was built with InstallAware, then I upgrade the package, the old version is removed as a pre-requisite by calling (Un)Install MSI Setup with the product code of the old version. Does this do the exact same thing as if I were to open Add or Remove Programs and uninstall the old version manually?
My concern is that it does not. If calling (Un)Install MSI Setup to remove the old version does cause the MSIcode of the old installer to be executed, I believe there is a serious problem. My setup runs custom actions on uninstall. In my "Perform Uninstallation" region, I have a Call DLL Function call to execute the custom action before calling Apply Uninstall. Now, if this block of code is not executed in the original setup.exe when I call (Un)Install MSI Setup from the new setup.exe, then my custom actions will not execute.
As a workaround, I have considered calling the old custom action from the new setup before calling (Un)Install MSI Setup in the new setup.exe when processing the Previous Version Uninstallation, but that seems like a hack at best, and is more likely just wrong. I cannot be sure that the old custom action method for uninstall has the same signature that I am trying to call it with in the new setup.exe. The old uninstall custom action needs to be called from the old setup.exe to be sure it is called correctly.
InstallAware folks, can you tell me if the "Perform Uninstallation" section of the MSIcode of the old setup.exe is exectuted when the old version is removed by calling (Un)Install MSI Setup from the new setup.exe? Thanks.
