How should I configure the repackaged installations to support an upgrade?

MSI Package Builder allows you to perform installation repackaging fast and easy. But a single instance repackaging is not enough in a real life. It is obvious, that when a new version of the repackaged software is released, you are going to create a new MSI package, containing this version. In this chapter, we will show you how to create an MSI package for repackaging a new version of any application.

The information below must be read by everyone who is going to repackage the upgraded installations and then deploy a resulting MSI package to Machines where the previous version of the package is installed. If the conditions described below are not met, the upgrade won't be performed correctly and the Programs and Features section of the Control Panel will display both versions of the repackaged installation.

For MSI packages to be deployed and upgraded correctly, they should be properly identified. For each MSI package there is a Product GUID, that uniquely identifies the product, and an Upgrade GUID that is used for matching upgrades. Windows Installer maintains its database and handles its consistency, depending on these identifiers. These identifiers are defined on a project scope while creating an MSI package and are available in the Project Details view.

Identifying the generated MSI package

Pic 1. Identifying the generated MSI package

The Product GUID value for the different versions of the installations being repackaged should differ, and the Upgrade GUID value should match. So, for example, if we are using the GUIDs displayed on Pic 1 while repackaging the Abode Reader 10.1.0 installation, the same Upgrade GUID in combination with another Product GUID, must be used for the Abode Reader 10.3.1 installation.

If you have lost the project used to create a previous version of the MSI package, thus cannot find GUIDs used to identify that project, you can import that package. You'll find the required GUIDs in the Project Details view when the package created on a basis of the import result is selected.

It is also required that at least one of the first three version figures of the MSI package used for upgrade differs from the version of the previously generated package. For example, if we have used the 1.0.0 version of the MSI package while repackaging the Abode Reader 10.1.0 installation, then we can use 1.1.0 version for the Abode Reader 10.3.1, but we cannot use 1.0.0.3.

If you are going to repackage only a single installation into an MSI package, but not a suit of applications, it is recommended that the application version be used as the MSI package version. It will make the configuration process easier.

For the successful upgrade it is also required that both MSI packages should have the same installation context (Current User/All Users) defined.

Before performing a mass deployment of the upgraded package, it is strongly recommended that the upgrade process be checked for correct work on a test PC. First, install a previous version of an MSI package, and then install an upgraded version. If you have configured the packages correctly, you'll be able to see that the new version of the application is installed and there is a single entry in the Programs and Features section of the Control Panel representing this package.

Following the above-stated recommendations, you'll be able to create MSI packages that fully support upgrade, thus be able to upgrade the applications installed by the repackaged setups.