Updating the Package Code, the Product Version, and the Product Code

InstallShield 2015 Express Edition

Several Windows Installer codes help identify a product:

Package Code—Part of the Summary Information Stream, the package code identifies a particular database. The package code is not a Windows Installer property. Any two .msi databases with identical package codes must have identical contents. Therefore, you should change the package code for each build.
ProductVersion—This is a Windows Installer property that contains the product version. Note that Windows Installer uses only the first three fields of the ProductVersion property for version comparisons. For example, for a product version of, the 4 is ignored. (Note that this is true for comparisons of ProductVersion values, and not for file versions.)
ProductCode—This is a Windows Installer property that contains the GUID of a product. Windows Installer treats two products with different ProductCode GUIDs as unrelated, even if the values for the ProductName property are the same.
UpgradeCode—This is a Windows Installer property that contains a GUID representing the product family. The UpgradeCode should be consistent across different versions and languages of a family of related products for patching purposes. You can set the UpgradeCode for an upgrade in the Upgrade Paths view.

For any type of upgrade, you must change various combinations of the package code, product version, and product code in the General Information view to identify the product being installed. The upgrade code must be the same for all versions of the product. The following table identifies when each code should be changed for different types of upgrades.

Codes that Need to Be Changed for the Different Types of Upgrades


Package Code

Product Version

Product Code

Upgrade Code

Small Update





Minor Upgrade





Major Upgrade





See Also