Patching Considerations

InstallShield 2014

Project: This information applies to the following project types:

Basic MSI
InstallScript MSI
QuickPatch

Following are some guidelines for creating patches and QuickPatch projects.

Testing the Upgrade Before Creating the Patch

It is recommended that you test your upgrade as a full-installation package before creating the patch. If the full-installation package successfully updates the earlier version of the application, then you can create the patch.

Creating an Update Launcher (Update.exe)

InstallShield lets you specify whether you want your update to include an Update.exe update launcher. An Update.exe update launcher is required in the following cases:

You want to automatically update or install the Windows Installer engine on a target system, when necessary.
You are building a patch for an InstallScript MSI project.
You want to automatically install the .NET Framework on a target system, when necessary.
You are building a patch whose product configuration includes support for installing multiple instances of a product and you want the instance selection dialog to be displayed when appropriate.

To learn more about multiple-instance support, see Installing Multiple Instances of Products and Creating Patches for Multiple Instances of a Product.

The Update.exe update launcher is a bootstrap application that manages the aforementioned scenarios.

If you configure InstallShield so that it does not create an Update.exe update launcher, it creates an .msp file.

For more information, see:

Specifying Whether to Build an Update.exe Update Launcher for a Patch
Specifying Whether to Build an Update.exe Update Launcher for a QuickPatch Package

Optimizing Patches for Large Files

Selecting the Optimize Patch for Large Files check box in the Patch Design view results in smaller bit-level patches for application files that are larger than 4 MB.

For QuickPatch projects, each QuickPatch that is built is automatically optimized for large files.

Patches for Compressed Installations

The patch creation process requires an uncompressed release of the previous installations and the latest installation. If the installations are compressed installations, you can use an administrative image of the releases.

InstallShield automatically creates an administrative image for you if you specify an installation that is compressed for a patch configuration in the Patch Design view. InstallShield also automatically creates an administrative image for you if you specify an uncompressed image in a QuickPatch project.

Patches and the REINSTALL Property

If you discover while testing your patch that you are prompted to locate the original installation source, you can sometimes avoid such problems by setting the REINSTALL property explicitly to the features that you have modified. This property is set to ALL by default.

Self-Registration of COM Servers in a Patch or QuickPatch Package

InstallShield uses InstallShield self-registration (which uses the ISSelfReg table) for new COM servers that are marked to be self-registered in a QuickPatch project if all of the following conditions are true:

The ISSelfReg table exists in the upgraded .msi file that is used to create the QuickPatch.
The ISSelfRegisterFiles custom action is present in the Execute sequence.
The ISSelfReg option is selected on the Preferences tab of the Options dialog box in InstallShield.

If any of the aforementioned conditions are false, InstallShield uses Windows Installer self-registration (the SelfReg table).

To use InstallShield self-registration in a patch if any of the aforementioned conditions are false, use the Patch Design view instead of a QuickPatch project.

Windows Installer 3.0 (and Later) and Patches

Windows Installer 3.0 and later includes many patch-related enhancements. If your patch or QuickPatch will be applied to target machines with Windows Installer 3.0 or later, you can take advantage of those enhancements. For more information, see the following:

Patch Sequencing
Patch Uninstallation
Non-Administrator Patches

Note that Windows Installer 3.0 and later supports major-upgrade patches that do not have any sequencing data. However, the installer does not support major-upgrade patches that have sequencing data, which would be stored in the MsiPatchSequence table.

Windows Installer 1.2 and Patches

To create a patch that targets the Windows Installer 1.2 engine, select the appropriate patch configuration in the Patch Design view. Then on the Advanced tab, set the Minimum Windows Installer Version property to 120.

Support for Patching Multiple Instances of a Product

If you create a patch for a Basic MSI project that includes support for installing multiple instances of a product in the same context on the same machine, InstallShield configures the patch so that end users can apply it to one instance or all of the instances. To learn more, see Creating Patches for Multiple Instances of a Product.

See Also