Windows Installer Tutorial (2/2)


In the previous page we have seen how the Feature, FeatureComponents, Component and File tables describe the files that need to be installed. But we haven't shown what uses these tables to perform the actual installation. This is what we are going to on this page.

The execution of an installation package is the execution of a sequence of actions. Each of these actions can be one of the standard actions [1] provided by the Windows Installer framework or a custom action as described in the Custom Actions tutorial.

The complete execution sequence is divided into two main parts: the InstallUISequence part and the InstallExecuteSequence part.

The InstallUISequence part is the first part of the execution sequence and its goal is to decide what needs to be done to install (or modify) the package, possibly by getting some input from the user. In this phase no change should be made to the system.

After the InstallUISequence the InstallExecuteSequence is run. This is the phase where the system is actually modified. Changes made to the system are recorded so that if the changes can't be completed successfully they are rolled back. Such protection doesn't exist in the InstallUISequence phase.

The actions to perform during the InstallUISequence and InstallExecuteSequence are defined by the InstallUISequence and InstallExecuteSequence tables of the package.

Figure 1 and 2 show these tables for the SingleFileInstallation1.msi package. The Sequence in this table is an integer that defines the order in which the actions should be performed (lowest sequence number is executed first).

The InstallUISequence Table
Figure 1: The InstallUISequence Table
The InstallExecuteSequence Table
Figure 2: The InstallExecuteSequence Table


  1. MSDN: Standard Actions

blog comments powered by Disqus

Copyright(c) 2006-2017 Xavier Leclercq | Privacy policy

Contact Us