For App packaging Training Contact:
+918867632827
Windows Installer (MSI) uses sequences to specify the order in which operations
are performed and the conditions under which they are performed.
Top-Level Sequences
Windows Installer supports three types of installation, called
1. Normal installation,
2. Administrative installation, and
3. Advertised installation.
Normal installation: It is the type of installation performed when the user
double-clicks an MSI database file, or runs msiexec. exe with the /i switch.
MSI double click installation :
MSIEXEC Installation:
An administrative installation: simply creates an uncompressed version of
the installation image in a specified target directory, usually a network location.
An administrator performs an administrative installation by launching
msiexec.exe with the /a switch. An administrative installation does not register
the product with the target system, in the sense that an administrative
installation creates no shortcuts, no registry data, no uninstallation entry, and so
forth.
Confidential C
For App packaging Training Contact:
+918867632827
An advertised installation installs application “entry points”—shortcuts, file-
extension information,but does not install any application data (files, registry
data, and the like) until the user invokes (Launch) one of these entry points.
Advertised installations are useful for saving disk space on the target system
until the product or specific features of it are needed. A user can advertise an
installation by passing msiexec.exe the /jm or / ju switch, indicating per-machine
and per-user advertisement, respectively.
Each of these installation types is represented by a top-level sequence.
Confidential C
For App packaging Training Contact:
+918867632827
User Interface and Execute Subsequences:
Each of the top-level sequences is divided into two subsequences, called the
User Interface (UI) sequence and the Execute sequence.
For a normal installation, these sequences are represented by the MSI database
tables InstallUISequence and InstallExecuteSequence.
InstallUISequence :
InstallExecuteSequence :
Confidential C
For App packaging Training Contact:
+918867632827
The tables used for the advertisement and administration sequences are called
AdvtUISequence, AdvtExecuteSequence, AdminUISequence, and
AdminExecuteSequence.
AdvtUISequence
AdvtExecuteSequence
AdminUISequence
Confidential C
For App packaging Training Contact:
+918867632827
AdminExecuteSequence
In the InstallShield environment, each of the subsequences is displayed in a
separate tree under the corresponding top-level sequence.
Difference Between UI Sequence and Execute Sequence :
A normal installation runs both the User Interface sequence and the Execute
sequence.
A silent installation performs only the Execute sequence, meaning that any
actions in the User Interface will be skipped for a silent installation.
Reduced-UI and basic-UI installations, such as an uninstallation launched from
the Remove button in the Add or Remove Programs panel, also skip the actions
in the User Interface sequence.
Similarly, launching an installer in test mode from the InstallShield environment
effectively runs only the User Interface sequence.
Introduction to Actions
Sequences are ordered lists of actions, where an action corresponds to one
operation performed by the installation. If you expand a sequence icon in the
Sequences tree, you can view the individual actions contained in that sequence.
Confidential C
For App packaging Training Contact:
+918867632827
Actions are two types :
1. Standard Actions
2. Custom Actions
Standard Actions: built-in actions provided by the Windows Installer service.
Confidential C
For App packaging Training Contact:
+918867632827
Standard
Action Description
PrepareDlg "PrepareDlg" dialog is showed
AppSearch performs the searches from the Search page
FindRelatedProd older or newer versions of the package are searched. If
ucts an older version is found, its Product Code is placed in
the "OLDPRODUCTS" property
LaunchCondition evaluates the launch conditions
s
CCPSearch validates that qualifying products are installed on a
system before an upgrade is performed
RMCCPSearch validates that qualifying products are installed on a
system before an upgrade is performed
Paths Resolution
determines the disk space required by the install
CostInitialize process
FileCost determines the disk space required by each file in
the Files and Folders page
CostFinalize ends the disk space costing and resolves the folders in
the project
Confidential C
For App packaging Training Contact:
+918867632827
determines the disk space required by the install
CostInitialize process
MigrateFeatureSt during an upgrade it reads the feature states in the old
ates version and then sets these feature states in the new
version.
User Selection
WelcomeDlg "WelcomDlg" dialog is showed
ResumeDlg "ResumeDlg" dialog is showed
MaintenanceWelcom "MaintenanceWelcomeDlg" dialog is showed
eDlg
PatchWelcomeDlg "PatchWelcomeDlg" dialog is showed
ProgressDlg "ProgressDlg" dialog is showed
Install Execution Stage
Searches
Standard
Action Description
AppSearch performs the searches from the Search page
FindRelatedProd older or newer versions of the package are searched. If
ucts an older version is found, its Product Code is placed in
the "OLDPRODUCTS" property
Confidential C
For App packaging Training Contact:
+918867632827
Standard
Action Description
LaunchCondition evaluates the launch conditions
s
CCPSearch validates that qualifying products are installed on a
system before an upgrade is performed
RMCCPSearch validates that qualifying products are installed on a
system before an upgrade is performed
ValidateProductI sets the ProductID property to the full product
D identifier
Paths Resolution
determines the disk space required by the install
CostInitialize process
FileCost determines the disk space required by each file in
the Files and Folders page.
IsolateComponent installs a copy of a component (commonly a shared
s DLL) into a private location for use by a specific
application (typically an .exe). This isolates the
application from other copies of the component that
may be installed to a shared location on the computer
CostFinalize ends the disk space costing and resolves the folders in
the project
SetODBCFolders checks for existing ODBC drivers on the system and
sets the target directory of each new driver to the
location of an existing driver
Confidential C
For App packaging Training Contact:
+918867632827
determines the disk space required by the install
CostInitialize process
MigrateFeatureSt during an upgrade it reads the feature states in the old
ates version and then sets these feature states in the new
version
Preparing
verifies that all volumes to which cost has been
attributed have sufficient space for the
installation. It also notifies the user if one or
more files to be overwritten or removed are
InstallValidate currently in use by an active process
RemoveExistingProd upgrades an older version of the package if one is
ucts found
InstallInitialize marks the beginning of the sequence of actions which
change the system
AllocateRegistrySpa ensures that an appropriate amount of free registry
ce space exists in the registry.
ProcessComponents registers and unregisters components, their key paths
and the component clients
Remove Resources
MsiUnpublishAssem unpublish the assemblies installed by the
blies package. Runs only during an uninstall
UnpublishComponents removes information about components published by
the package. Runs only during an uninstall
UnpublishFeatures removes selection-state and feature-component
mapping information from the system registry. Runs
only during an uninstall
Confidential C
For App packaging Training Contact:
+918867632827
MsiUnpublishAssem unpublish the assemblies installed by the
blies package. Runs only during an uninstall
StopServices stops services which use "Stop" control operations in
the package
DeleteServices removes services which use "Delete" control
operations in the package.
UnregisterComPlus removes COM+ applications from the registry. Runs
only during an uninstall
SelfUnregModules unregisters all modules which used self
registration during install. Runs only during an uninstall
UnregisterTypeLibrarie unregisters type libraries from the system. Runs only
s during an uninstall
RemoveODBC removes the ODBC data sources, translators and
drivers. Runs only during an uninstall
UnregisterFonts removes registration information about installed fonts
from the system. Runs only during an uninstall
RemoveRegistryValues removes registry entries created in the Registry page.
Runs only during an uninstall
UnregisterClassInfo manages the removal of COM class information from
the system registry. Runs only during an uninstall
UnregisterExtensionInf manages the removal of extension-related information
o from the system registry. Runs only during an uninstall
UnregisterProgIdInfo manages the unregistration of OLE ProgId information
with the system. Runs only during an uninstall
Confidential C
For App packaging Training Contact:
+918867632827
MsiUnpublishAssem unpublish the assemblies installed by the
blies package. Runs only during an uninstall
UnregisterMIMEInfo unregisters MIME-related registry information from the
system. Runs only during an uninstall
RemoveINIValues removes INI files or entries created in the Files and
Folders page. Runs only during an uninstall
RemoveShortcuts removes the shortcuts created in the Files and
Folders page. Runs only during an uninstall
RemoveEnvironmentSt modifies or removes the environment variables
rings created in the Environment page. Runs only during an
uninstall
RemoveDuplicateFiles removes files created by File Duplication operations.
Runs only during an uninstall
RemoveFiles removes the files created in the Files and Folders page.
Runs only during an uninstall
RemoveFolders removes the folders created in the Files and
Folders page. Runs only during an uninstall
Add Resources
creates the folders specified in the Files and
CreateFolders Folders page.
MoveFiles moves or copies files which use File Move operations
InstallFiles installs the files specified in the Files and Folders page
PatchFiles patches the files included in the patch package. Runs
only during a patch installation
Confidential C
For App packaging Training Contact:
+918867632827
creates the folders specified in the Files and
CreateFolders Folders page.
DuplicateFiles duplicates the files which use File
Duplication operations
BindImage binds each executable or DLL that must be bound to
the DLLs imported by it. This is not used by packages
created with Advanced Installer
CreateShortcuts creates the shortcuts specified in the Files and
Folders page
RegisterClassInfo manages the registration of COM class information
with the system
RegisterExtensionInf manages the registration of extension related
o information with the system.
RegisterProgIdInfo manages the registration of OLE ProgId information
with the system
RegisterMIMEInfo registers MIME-related registry information with the
system
WriteRegistryValues creates the registry values specified in
the Registry page
WriteINIValues creates INI files or entries specified in the Files and
Folders page
WriteEnvironmentStr creates or modifies the environment variables created
ings in the Environment page
RegisterFonts registers fonts marked for registration
Confidential C
For App packaging Training Contact:
+918867632827
creates the folders specified in the Files and
CreateFolders Folders page.
InstallODBC installs ODBC drivers, translators and data sources
RegisterTypeLibrarie registers type libraries with the system
s
SelfRegModules registers the modules which use self registration
RegisterComPlus registers COM+ applications
InstallServices installs services specified in the Services page
MsiConfigureService configures the services to be ready to start
s
StartServices starts services which use "Start" control operations in
the package
RegisterUser registers the user information with the installer to
identify the user of a product
RegisterProduct registers the product information with the installer and
with Programs and Features. Also, it caches the MSI
package
PublishComponents manages components which need to be published
MsiPublishAssemblie publishes the assemblies installed by the package
s
PublishFeatures writes each feature's state into the system registry
Confidential C
For App packaging Training Contact:
+918867632827
creates the folders specified in the Files and
CreateFolders Folders page.
PublishProduct manages the advertisement of the product information
with the system. This action publishes the product if
the product is in advertise mode or if any feature is
being installed or reinstalled
Finish Execution
runs a script containing all operations in the
InstallExec action sequence since either the start of the
ute installation or the last InstallExecute action
InstallFinali runs a script that contains all operations spooled since
ze the installation started. Also, it marks the end of the
Execute sequence
Confidential C