PDA

View Full Version : Upgrade installation (Installscript to Basic MSI)



firmusoft
02-16-2010, 08:31 AM
Hi all;

We have a setup program which is an Installscript based project. We are redoing this as a BasicMSI (windows installer) project for a new release of the product. One of the requirements is to be able to run the new setup and upgrade to the new version in systems where the earlier version is installed.

We maintained the same product GUID, and incremented the product version. But when running the setup in a system where the earlier version of the product is installed, its not running in an upgrade mode, instead it starts up in a fresh installation mode.

Is it possible to run the setup in upgrade mode in this scenario? Can we add some custom action to check for previous installs and set an upgrade flag (?) accordingly?

Sincerely
Praveen

J_anitha
02-17-2010, 04:42 AM
I feel it's not possible that way, since msi upgrade requires the upgrade code to be same for both the versions.
May be you can keep product code different for both, silently remove the older version, as soon as you start the new version installation.

Kelter
02-17-2010, 10:22 AM
If the previous installation was an InstallScript installation (as opposed to an InstallScript MSI installation) then there will be no MSI information registered for the older version, and you'll therefore have to manually detect the existence of the previous installation (through the SystemSearch view) and use a custom action to uninstall the previous version.

If the previous installation was InstallScript MSI, then as J_a said, make sure the Upgrade codes are the same, and check the upgrades view. You may need to create an Automatic Upgrade Item.

firmusoft
02-22-2010, 07:07 AM
Thanks for the replies.

We are trying out two options

1. As j_anita suggested do a silent uninstall on startup. An upgrade message shall be displayed and files automatically installed to the same location where the earlier version existed and install only those features selected in the earlier install. Also restore any user settings in the previous install.

2. Run the install to the same location as the previous. Select (silent) only those features that were there before. Using custom action remove the add/remove program entries.

Avoiding the uninstall in the second option, automatically restores the user settings. We have around 10 or so product installs to be updated this way. Removing the add/remove entries can be a generic function, but cachng and restoring has to be custom for each product.

Shall finalize on one of these after verification.

Thanks again

Reddy611
02-22-2010, 07:19 AM
Dear ..friend.

Once you start installing the basic MSI installer after Welcome dailog write a custom action to get old installed locaiton from the registry.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\-"INSTALLSCRIPT-MSI-Product CODE"

By using this you will come to know where it got installed with product code.

using this you can uninstall the old product as well you install the new product in the same locaiton.

After this show the customize dailog with two radio button 1)Upgrade from old installation with retaining configuration 2)unisntall old version completelly and install fresh installer.

Based on this selection you can continue the installation.

Thanks
Raju.chilakam