Skip to main content

Different Type of Application Upgrades

What is Upgrade? Explain different type of upgrades?

Create Higher version of the current (existing) version of a product.
Types of upgrades:
Update(Small): Just we can add patches or Hot fix or Quick Fixes engineering. add a few files possibly add some new content. But there is a limitation for the change that can be made to the feature component structure for the package. Only the package code has been changed.
Minor Update: There is limitation for Changes, that change can be made to the feature-component structure for the package. The package code and product version is changed. It is also called as "service pack".
Major Update: There is no limitation for changes, that change can be made feature-component structure for the package The product code, product version and package code also changed.

A. A small update is a product update that changes a few files or possibly adds some new content. A minor update is a product update that makes enough changes to warrant changing the product version for the product, whereas a major update is a product update with a large number of changes that warrants a change in the product code.
It's sometimes easier to think of a small update as a "hotfix" or Quick Fix Engineering (QFE) update, a minor update as a service pack, and a major update as a product upgrade.
Small and minor updates can be considered almost equal in that the only real difference is that a minor update has a change to the ProductVersion whereas a small update does not. The rules that they follow and application of the patch are the same. Application of small and minor update patches requires explicit reinstallations. Major updates are not subject to that limitation and a reinstallation is not required for patch application. Additionally small and minor update patches are limited in the changes that can be made to the feature-component structure for the package. Significant changes can be made to the feature-component structure in the scope of a major update.

Review of Upgrade Types

      A small update (A drawback to small updates is that external programs, including installers for later versions of your product, will not be able to distinguish a product with the small update applied from one without the small update.)
      A minor upgrade is a change to the product large enough to merit a change to the product version, such as updating version 1.1 to 1.2, but in which there have been no significant changes to the setup organization between versions. The install-time behavior of a minor upgrade is to install over the existing product.
      A major upgrade includes substantial product changes, such as updating version 1.2 to 2.0. A major upgrade can contain significant changes to the setup architecture; later. The install-time behavior of a major upgrade can be to uninstall the earlier version and install the new one, or to install over the earlier version and then remove any leftover data.
NOTE: For an earlier product version that was installed with a legacy (non–Windows Installer) setup, a custom action will normally be required to uninstall or modify the existing product installation.

MSI Codes and Updates

Every MSI database contains a handful of codes that identify the product being installed.
      Package Code: part of the Summary Information Stream, the package code identifies a particular database. Any two MSI databases with identical package codes must have identical contents, and therefore you should change the package code for each build.
      ProductVersion: MSI property storing the product version. Note that MSI uses only the first three fields of the ProductVersion property for version comparisons: in a.b.c.d, the field d is ignored. (Note that this is true just for comparisons of ProductVersion values, and not for file versions. File-version comparisons can use all four fields of a file’s version.)
      ProductCode: MSI property containing the GUID for the current product. MSI treats two products with different ProductCode GUIDs as unrelated, even if ProductName is the same. (As you will see, the major-upgrade process instructs MSI to treat two products with different GUIDs as related.)
      UpgradeCode: MSI property containing a GUID representing the current product “family”; in the major-upgrade process, if two products have different ProductCode values but the same UpgradeCode value, MSI knows that the products are related, and are therefore candidates for the major-upgrade process. In general, the upgrade code value never changes.
The following table summarizes the required changes.

Package code (SIS)
Product Version
Product Code
Upgrade Code
Small update
X



Minor upgrade
X
X


Major upgrade
X
X (usually)
X

version number of the product and the value of this property has the following format: major.minor.build The first two fields of this property are limited to a maximum value of 255. The last field can have a maximum value of 65,535. When the ProductVersion property is used in a database table column other than one in the Property table, the property can have a fourth field because these columns use the version From Practical Windows Installer Solutions for Building InstallShield Setup Applications by InstallShield Press 3 data type. However, Windows Installer ignores any fourth field and makes all comparisons using only the first three fields.

You can use the rules defined in the following list to determine if you need to change the value of the ProductCode property for your upgrade. You must change the ProductCode property in each of the following cases. ƒ Your new product needs to coexist on a system with any older versions of the product. ƒ The name of the MSI package has changed. ƒ You remove an existing component from an existing feature. ƒ You make an existing feature a child of another existing feature. ƒ You remove an existing child feature from its parent feature. ƒ If you change the component code of an existing component, you have essentially created a new component. When you do this, you need to follow the component creation rules and you need to change the value of the ProductCode property.



Inside InstallShield, the package code is exposed in the Summary Information Stream view, under General Information.
Methods to upgrade?
1.       Uninstall all old apps from ARP, with a script and then install the latest one.
2.       Supersede the app by listing down all old apps
3.       Most important and genuine method:
The MSI Upgrade Table
Finally, in order to understand Windows Installer upgrades you need to understand the Upgrade table. There are many properties in the Upgrade table that you will need to set properly to ensure your upgrade works properly.
      Upgrade Code- The FindRelatedProducts MSI action will search all packages on the target machine in order to find anywhere the Upgrade Code property matches this value. In other words, this code needs to match the UpgradeCode of your previous product(s) so this MSI knows which products to consider for upgrade.
      Minimum Version- The minimum version to search for. Any packages containing the specified UpgradeCode but with a version lower than this will not be detected. Keep in mind that the only the first three numbers are recognized (ex. 7.0.2210.332 will be recognized as 7.0.2210)
      Maximum Version- The maximum version to search for. Any packages containing the specified UpgradeCode but with a version higher than this will not be detected.
      Language- You can search only for specific language versions. If this is left null all languages will be detected. All languages should be upgraded by convention.
      Attributes-
Decimal
Attribute
Attribute details
1
Migrates feature states by enabling the logic in theMigrateFeatureStates action.
Migrate feature states: Feature states, such as advertised, will be migrated to the upgraded version
2
Detects products and applications but does not remove.
Do not uninstall previous version: The previous version will only be detected and will not be uninstalled.

4
Continues installation upon failure to remove a product or application.
Continue installation after a removal failure: Will continue the install if the removal of the base application fails.

256
Detects the range of versions including the value in VersionMin.
Include minimum version in range: Specifies whether the Min Version specified is included in the search.

512
Detects the range of versions including the value in VersionMax.
Include maximum version in range: Specifies whether the Max Version specified is included in the search.

1024
Detects all languages, excluding the languages listed in the Language column.
Exclude languages: Specifies whether the languages listed are excluded from detection.


     Remove- You can choose to only remove certain features specified on this field. If this is left blank all feature will be removed. Delimited by commas.
      ActionProperty - UPGRADE_01
When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. After FindRelatedProducts, the value of this property is a list product codes, separated by semicolons (;), detected on the system.
The property specified in ActionProperty must be a restricted public property and you must add the property to the SecureCustomProperties property. Each row in the Upgrade table must have a unique ActionProperty value.




Steps to manually create Minor Upgrading MSI:

Change the Package code and Product Version to create a minor upgrade
Add feature / component by following the guide lines in Section: Requirement for Minor upgrade
Add Remove or Modify files, registry keys and shortcuts.
Add minor upgrade item in upgrades view (this is optional).
Build and use the installer for upgrade.

Comments