Easy Setup

Installation Software Blog

 

After introducing the Msi platform in Article 1, I would like now to take a deeper look at its “roll-back” feature.

The idea of having an Msi platform is to register all the actions during the installation process and enable their retrieval (”roll-back”). Each and every action is logged in two separate locations:

1. c:\WINDOWS\Installer - stores a transformed copy of the original Msi, according to the actions performed during the installation process. This copy is later used, for example, to enable “Remove/Repair” and other maintenance sequences.

In addition, this file stores the PackageCode. Most Installation Editor Programs define this code as default behavior and use it to determine when to run “Update/Maintenance” Mode. (The code can be queried by either opening the Msi through the editor, or by right clicking it and then selecting the “Properties Summary” tab or the “Revision Number” field.

2. Registry Key - stores the GUIDs, as well as information about the features and components installed by each product and the relationship between them, as follows:

  • Upgrade Code: A unique GUID defining the “family” of the product. This code is registered, after the installation is successfully completed, under: HKLM\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Installer\ UpgradeCodes.

  • Product Code: A unique GUID defining the installed product. This code is registered under: HKLM\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Installer\ UserData\ [user identifier]\ Products and as a sub-key under the UpgradeCode. The [user identifier] marks the unique GUID which is given to each user of the machine. The extra sub-key helps to distinguish between per-machine and per-user installed products.

  • Features: The name of each installed feature and its encrypted data are listed under:HKLM\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Installer\ UserData\ [user identifier]\ Products\ [Transformed Product Code]\ Features.

They supply the relationship information between the installed components of each product.

  • Components: The identifier GUIDs for all the components of each installed product are listed as a sub-key under: HKLM\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Installer\ UserData\ [user identifier]\ Components\ [Transformed Product Code].

They supply the relationship information between the installed components of each product. Note that the GUID registered here is the transformed one.

  • Patches: The list of patches installed for each product, and their properties, are listed under: HKLM\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Installer\ UserData\ [user identifier] \Products\ [Transformed Product Code]\ Patches\[Transformed Patch Code]/

Some of the terms mentioned in this article, such as “Feature”, “Components” and “patches”, will be clarified throughout the next articles of this series.


 
Copyright © 2008 Powered By 3point