Understanding Windows Installer Patches

In this article, we will try to explain how a patch (MSP) works and give you a brief overview of you can create one.

A patch is an incremental update to an existing installation of your application. You cannot install a patch if the target version (the one you want to update) is missing.

Patch diagram

To generate a patch for your application you must:

  1. Create the MSI for v1.0 of your app
  2. Create the MSI for v1.1 following the patch rules
  3. Create a patch project where AI performs a diff of the two MSI packages

The Patch Project simulates a comparison between the packages. Any changes brought to the second MSI v1.1 are gathered (registry, files, etc.) and these result in the patch file.

Upgrade Scenarios

Patch2 diagram

You have two ways to upgrade an MSI, each with its pros and cons.

You can use a patch (MSP) v1.1. This has a reduced size because it only contains the changes brought to v1.1 of the MSI. However, this requires v1.0 of the MSI to be present on the target machine, and you must follow the rules of creation for MSP’s.

The second option is to use v1.1 MSI. You don’t have to follow strict rules of creation like the MSP’s, you can add an upgrade to the v1.0, and v1.0 doesn’t have to be present on the machine. However, because it’s a standalone install, the size of the MSI is larger than the MSP.