Revenera logo

By Fletcher Oliver

There comes a time with every software package when you have to make changes or add files to your product, and those modifications warrant creating an upgrade release in a Basic MSI project. Many people are sometimes unsure whether they need to create a minor upgrade or major upgrade. Here are some tips to help you determine which one is right for your changes to your product.

First of all, the main difference between a minor and major upgrade is how the install is handled by the Windows Installer. Windows Installer treats a minor upgrade that is packaged as a full multiplatform installation rather than a patch as a first time install if an earlier version is not present; if an earlier version of the product is already installed on the target system, it installs the upgrade over that existing version. Windows Installer also treats a major upgrade as a first time install if an earlier version of the product is not present on the target system. However, depending on how you configure a major upgrade, if an earlier version is present, Windows Installer either uninstalls the older version and then installs the new version, or it installs the new version and then removes any older files. The changes that are made in the upgrade will determine which path you would need to use—a minor or major upgrade. Here are some of the changes that would determine if you should use a minor or major upgrade.

InstallShield icon

InstallShield

Create native MSIX packages, build clean installs, and build installations in the cloud with InstallShield from Revenera.

Starting with the changes that, if made, would require a major upgrade:

  • Making a change to the name of the .msi
  • If you want to let users to install the earlier versions and latest version on the same system
  • If you add a new subfeature to the product tree, and the subfeature consists of existing components
  • Any features in the product tree are moved or deleted
  • Any components in the product tree are moved or deleted
  • If you change the component code of an existing component in your project
  • If you change a key file of a component

As for a minor upgrade, here are some of the changes that you can make and still have it be a minor upgrade. (Note that these changes can also be included in a major upgrade.)

  • If you add a new component to a new feature
  • If you add a new subfeature to the product tree, and the subfeature consists of one or more new components—no existing components
  • Adding an new component to an existing feature (only on systems that have Windows Installer 2.0 or higher)
  • If you are changing, removing, or adding any files, registry keys, or shortcuts

If any one of the requirements for your upgrade is not appropriate for a minor upgrade, you’ll need to create a major upgrade.

Of course this is not a definitive list, just a short overview to get you started. For further information on upgrades, consult the help library that is included with InstallShield. Following these guidelines and using proper file versioning will make a major difference in following best practices and not creating further problems for your additional upgrades down the road.