InstallShield 2015
Project: This information applies to the following project types:
• | Basic MSI |
• | InstallScript MSI |
• | MSI Database |
• | Transform |
Windows Installer supports three types of product upgrades: major upgrades, minor upgrades, and small updates. The following table serves as a guide to help you determine which type of upgrade best suits your needs. If any one of the requirements for your upgrade is not appropriate for a minor upgrade or a small update, you should create a major upgrade. If you are not sure which type of upgrade you should use for your Windows Installer–based project or if you do not have a preference, you can create an automatic upgrade.
Requirement for the Upgrade |
Use a Major Upgrade? |
Use a Minor Upgrade? |
Use a Small Update? |
Note |
Change the name of the .msi package |
Yes |
No |
No |
The default file name is taken from the Product Name property, provided the .msi file is not compressed in a Setup.exe installation launcher. |
Enable end users to install earlier versions and the latest version on the same machine |
Yes |
No |
No |
|
Add a new subfeature |
Yes |
In some cases |
In some cases |
If the new subfeature consists of new components only, you can use a small update, a minor upgrade, or a major upgrade. If the new subfeature consists of existing components, you must use a major upgrade. |
Move or delete a feature in the product tree |
Yes |
No |
No |
|
Add a new component to a new feature |
Yes |
Yes |
Yes |
|
Add a new component to an existing feature |
Yes |
Yes, if the version of Windows Installer is 2.0 or later |
Yes, if the version of Windows Installer is 2.0 or later |
Windows Installer 1.x requires new components in an upgrade package to be placed in new features for minor upgrades and small updates; it also requires special command-line handling. |
Move or delete a component in the product tree |
Yes |
No |
No |
|
Change the component code of an existing component |
Yes |
No |
No |
|
Change the key file of a component |
Yes |
No |
No |
|
Add, remove, or modify any of the following: files, registry keys, or shortcuts |
Yes |
Yes |
Yes |
If the file, registry key, or shortcut is in more than one component and the component is shared by two or more features, a major upgrade must be used. |
Start with an MSI Database or Transform project |
Yes |
No |
No |
|
Codes Associated with the Different Types of Upgrades
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 identifies 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 1.2.3.4, 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 identifies 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 identifies the GUID that represents a related set of products. The UpgradeCode should be consistent across different versions and languages of a family of related products so that it can be used to search for related versions of the product that are already installed. You can set the UpgradeCode for an upgrade in the Upgrades view. |
For any type of upgrade, you must change various combinations of the package code, product version, and product code to identify the product being installed. The following table identifies when each code should be changed for different types of upgrades.
|
Package Code |
Product Version |
Product Code |
Upgrade Code |
Small Update |
X |
|
|
|
Minor Upgrade |
X |
X |
|
|
Major Upgrade |
X |
X |
X |
|
See Also
Packaging Options for Upgrades
Preventing the Current Installation from Overwriting a Future Major Version of the Same Product
InstallShield 2015 Help LibraryJune 2015 |
Copyright Information | Contact Us |