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.
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
|
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
Post a Comment