Install 'upgrade' without uninstall?
Posted: Mon Jul 12, 2010 4:11 pm
Hi Guys,
Is there any reason InstallAware always wants to uninstall the prior version of a piece of software when installing a new update? I know lots of software packages can just 'update' the installation without requiring the uninstall of the prior software package, so I am wondering if it is possible to do that with InstallAware?
Part of the reason I would like to do that, is due to the way Install Aware handles silent installs for automatic 'upgrades'. I wrote my own upgrade system (the supplied script did not do exactly what I needed), which spawns the installer with the /s option just like the InstallAware upgrades. Which works great until we hit our real warehouse Netbooks, which are running Windows XP Home with limited user accounts. Windows XP Home has retarded access controls built in, so unless the user is an admin, installing to C:\Program Files\My Program is not going to work, so we have to install the software into C:\My Program, because the root directory is never locked down on XP Home. And XP Home does not support UAC elevation, so the installer running under the limited use account cannot gain admin rights.
Anyway, this all works fine until an update is delivered, because the silent update ends up doing a complete uninstall of the product, and then a fresh install. Since InstallAware does not appear to have any support for 'remembering' where the last install was located, it happily tries to install to C:\Program Files\My Program, which of course fails. And the machine now has nothing installed on it.
I can hack around the problem for now by making the program install into C:\My Program by default, but it would be better if InstallAware could do either of these two things:
1. Install an upgrade over the top of the existing install, rather than requiring a full uninstall. I don't want to manage patches, just push all the new files on top of the old ones, and re-start everything.
2. Failed the above, the uninstall/re-install will work PROVIDED there is some mechanism to remember the previous install settings so that when the silent install runs, it will re-install to the overridden location?
Is there any support for this, or am I going to have to code this up myself in MSI?
Is there any reason InstallAware always wants to uninstall the prior version of a piece of software when installing a new update? I know lots of software packages can just 'update' the installation without requiring the uninstall of the prior software package, so I am wondering if it is possible to do that with InstallAware?
Part of the reason I would like to do that, is due to the way Install Aware handles silent installs for automatic 'upgrades'. I wrote my own upgrade system (the supplied script did not do exactly what I needed), which spawns the installer with the /s option just like the InstallAware upgrades. Which works great until we hit our real warehouse Netbooks, which are running Windows XP Home with limited user accounts. Windows XP Home has retarded access controls built in, so unless the user is an admin, installing to C:\Program Files\My Program is not going to work, so we have to install the software into C:\My Program, because the root directory is never locked down on XP Home. And XP Home does not support UAC elevation, so the installer running under the limited use account cannot gain admin rights.
Anyway, this all works fine until an update is delivered, because the silent update ends up doing a complete uninstall of the product, and then a fresh install. Since InstallAware does not appear to have any support for 'remembering' where the last install was located, it happily tries to install to C:\Program Files\My Program, which of course fails. And the machine now has nothing installed on it.
I can hack around the problem for now by making the program install into C:\My Program by default, but it would be better if InstallAware could do either of these two things:
1. Install an upgrade over the top of the existing install, rather than requiring a full uninstall. I don't want to manage patches, just push all the new files on top of the old ones, and re-start everything.
2. Failed the above, the uninstall/re-install will work PROVIDED there is some mechanism to remember the previous install settings so that when the silent install runs, it will re-install to the overridden location?
Is there any support for this, or am I going to have to code this up myself in MSI?