Executive summary of msi upgrade

After having to do that a few times recently, I decided to put down a short summary on how msi upgrades work. It’s may not be 100% accurate and doesn’t go into much details, but if you want to explain it to colleagues or managers who know very little of msi, it should satisfy them.

So here it goes:

Windows installer consider the following parameters in order to decide if the current installation is related to an existing one:

  • Upgrade code – identifies a family of a product
  • Product code – identifies a certain release of the product
  • Package code – identifies a certain build of a certain release of the product
  • Product Version (the first three fields)

And has the following upgrade scenarios:

  • Major upgrade – completely uninstall an existing product before installing the new one (same upgrade code, different product code, different version)
  • Minor update – update the existing product by only replacing files which were changed and other custom actions (same upgrade code, same product code, different version)
  • Maintenance – modify/repair/remove scenarios (same upgrade code, same product code, same package code, same version)

All other cases either result in an error (such as ‘another version of this product is already installed’) or make windows installer think it’s a new product.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s