Major Upgrades

InstallShield 2015

Project: This information applies to the following project types:

Basic MSI
InstallScript MSI
MSI Database
Transform

In a major upgrade, the product changes are large enough to merit changes to both the product version number and the product code, as well as the package code. An example is updating version 1.2 of a product to 2.0. A major upgrade acts like a first-time installation if an earlier version is not present. If an earlier version is present, a major upgrade typically uninstalls the earlier version and then installs the new version. It is also possible to have a major upgrade first install over the earlier version and then remove any unused files. This method is more efficient, but strict component-authoring rules must be followed.

How Major Upgrades Work

As the Windows Installer help implies, you must change the product code for the latest version of your installation in order to perform a major upgrade.

Note: You can set the product code for your installation in the General Information view. It does not matter what the new product code is, as long as it is unique.

By virtue of having a unique product code, your latest installation will have its own independent registration with the Windows Installer service on end users’ machines. This means that unless some other step is taken, the Windows Installer installs the latest version of your product independently of any of the previous versions. This may be okay if the two versions of your product can coexist on the same machine, but then that would not be an upgrade. Therefore, for the sake of this discussion, it is assumed that two versions should not coexist on the same machine.

Once you update the product code for your latest installation, you need to use the Upgrades view to specify information for any previous version or versions that you want to upgrade.

For more information about what is involved in creating a major upgrade, see Creating Major Upgrades.

Major Upgrades at Run Time

When an earlier version of the product is not available on the target machine and the end user runs a major upgrade, the installation behaves as a first-time installation.

If an earlier version of the product does exist on the target machine and the end user runs a major upgrade, they encounter almost the exact same installation experience as if they were to install the latest application on a clean target machine. The difference is that before installing its new resources, the installation typically uninstalls the earlier version from the target machine. This removal is reflected in the progress bar of the Setup Progress dialog, which gives end users the ability to see the progress of the uninstallation. After the removal of the previous installation has completed, the resources from the latest installation are then installed onto the target machine.

This type of upgrade is a complete uninstallation and then reinstallation of all of the resources associated with your application. Therefore, any data for your application that has been configured by the end user may be completely deleted from the end user’s machine. If you need to retain some of the end-user data, create a custom action that backs up this data and then replaces it after the installation of new data has completed.

See Also