Updates Deployment: Major Upgrade vs Patch

Written by Radu Popescu · June 6th, 2019

In the lifecycle of an application package, it comes a point when an update is required. Whether we want to fix minor bugs and vulnerabilities, or we come up with some improvements and big changes to our app, we must deliver it as an update.

There are 3 update types (small, minor and major) and 2 installation types that we can use to deliver the update (Major Upgrade or Patch package).

The 3 types of updates can be distinguished by the changes that affect the application product code, package code and package version (information stored in [ProductCode], [PackageCode] and [ProductVersion] properties). Each one of the 3 types of updates can be delivered as Major Upgrade installation or a Patch package. Depending on how ”big” is our update, one package type might be more suited than the other. Back in the days when the internet bandwidth was low and limited, “patches” were the preferred method of upgrading an application. However, because it is more difficult to manage patches over time and today in most of the cases we have high speed internet connection, patches are preferred only for upgrading applications that have over 500 MB.

Major Upgrades

A Major Upgradeinstallation package represents a standalone setup (MSI or EXE), “an improved version of the old self” and when applied, it replaces the previous version. It first uninstalls the previous version and then installs itself, bringing the application up to date. It’s common to use Major Upgrade Installation when we have significant changes to our application and we have moved on to a newer version. It has the advantage that it can also be used as a simple, standalone software installation.


Patches

A patch package is an MSP file containing usually only the changes between the previous and the updated version.

Servicing applications by delivering a Windows Installer patch, rather than a complete installation package for the updated product can have advantages. This can enable the user to download an upgrade patch that is much smaller than the installation package for the entire product. An update using a patch can preserve a user customization of the application through the upgrade. However, patches cannot be installed standalone and can only be applied on top of the previous version. Therefore the name ”patch”.


Here is a best practice when to use Major Upgrade and when to use Patch to update your product:

Major Upgrade (MSI or EXE)Patch (MSP)
Small hotfixx
Big changex
User data applicationx
Support standalone installx

Comments: