When Windows Installer performs a major upgrade, the position of the RemoveExistingProducts action determines when the uninstall of the old product is performed. Despite efficiency, two factors dominate the decision
- What should happen if either the install or the uninstall fails?
- Should the new product ‘see’ registry entries/files/etc from the existing product or should the new product install ‘start from scratch’?
The following table summarizes the four possible approaches.
| Position | Audit scripted? | Which product remains if … | Unchanged files are reinstalled? | |
|---|---|---|---|---|
| uninstall fails? | install fails? | |||
| Between InstallValidate and InstallInitializeRemove old, install new | No | Old | Neither | Yes |
| After InstallFinalizeInstall new, remove old | No | Both | Old | No |
| After InstallInitialize, before any script-generating actionsRemove old, install new | Yes | Old | Old | Yes |
| Between InstallExecute (or InstallExecuteAgain) and InstallFinalizeInstall new, remove old | Yes | Old | Old | No |
Advertisement


LinkedIn Profile
Xing Profile
Follow me on Twitter (new)
Thank you, that was really helpfull!
Thank you very much.
Good one.. thnx.. :)