Installation Sequence

InstallShield 2022

Project:This information applies to the following project types:

Basic MSI
InstallScript MSI
MSI Database
Transform

The installation sequence is the series of actions that are executed when the installation runs in the default installation mode, such as when an end user double-clicks a new .msi file. These actions are broken down into two types:

User Interface
Execute

Project:The User Interface dialogs described below are those for a Basic MSI project. For an InstallScript MSI project, your InstallScript code performs the user interface of the installation.

An InstallScript MSI project automatically includes the ISVerifyScriptingRuntime custom action. For details, see ISVerifyScriptingRuntime.

User Interface

The User Interface sequence contains all of the actions and dialogs needed to support a full user interface. This sequence is skipped if an installation is run in silent mode.

For complete technical details about each standard action, see the Standard Actions Reference in the Windows Installer Help Library.

User-Interface Actions and Dialogs in the Installation Sequence

Name of Action or Dialog

Type of Event

Description

SetupCompleteError

Dialog

This dialog is displayed at the end of an installation if that installation was terminated because of a fatal error.

SetupInterrupted

Dialog

This dialog is displayed at the end of an installation that was ended by the user.

SetupCompleteSuccess

Dialog

This dialog is displayed at the end of a successful installation.

ISSetupFilesExtract

Custom action

This custom action extracts any files that you have added in the Support Files view. For more information, see Using Support Files.

ISSetAllUsers

 

The ISSetAllUsers custom action is inserted in the both the User Interface and Execute installation sequences only if one or more records are in the Upgrade table.

AppSearch

Standard action

This action can be used to identify and locate files on the target system. The Signature table that this action requires is available in the Direct Editor. Knowledge Base article Q103147 provides detailed information on using this action.

LaunchConditions

Standard action

This action evaluates a set of conditions that must return True if the installation is to continue. If any conditions fails, the user is presented with an error message and the installation ends. Launch conditions can be edited in the General information view.

SetupInitialization

Dialog

This dialog is displayed while the setup is preparing to begin. The default text for this dialog is "Preparing to install..."

FindRelatedProducts

Standard action

When this action is executed, the installer compares each installed product’s upgrade code to that listed in the package’s Upgrade table. If a match is found, the installed package’s product code is added to the ActionProperty column of the Upgrade table.

CCPSearch

Standard action

The CCPSearch action allows you to check the end user’s system for products qualifying for upgrade. The Signature table that this action requires is available in the Direct Editor.

RMCCPSearch

Standard action

The RMCCPSearch action allows you to check an end user’s system for products qualifying for competitive upgrade. The Signature table that this action requires is available in the Direct Editor.

ValidateProductID

Standard action

Use the Validate Product ID action to set the ProductID property to the complete product identifier. This validation allows you to protect your software from illegal use by requiring users to enter the product ID.

CostInitialize

Standard action

This action is the first step in determining how much disk space is required by the current configuration of the installation. In order to complete costing, you need to use the CostInitialize action in conjunction with the CostFinalize action.

FileCost

Standard action

The FileCost action determines how much disk space is required by the current configuration of the installation. It checks to see if any files will be overwritten with later versions, and it calculates how overwriting those files affects disk space. To complete costing, you need to use the CostInitialize action in conjunction with the CostFinalize action.

IsolateComponents

Standard action

This action installs a component—usually a DLL file—into an isolated location so that it is used by only your application.

setUserProfileNT

Custom action

This custom action initializes the USERPROFILE directory identifier.

SetAllUsersProfileNT

Custom action

This custom action initializes the ALLUSERSPROFILE directory identifier.

setAllUsersProfile2K

Custom action

This custom action initializes the ALLUSERSPROFILE directory identifier.

ResolveSource

Standard action

Finds the location of the source and sets the SourceDir property.

CostFinalize

Standard action

The Calculate Disk Space action determines the total amount of disk space required by the installation in its current configuration. This action also verifies that all target directories are writable. The actions Initialize Disk Space Calculations and Initialize Dynamic Disk Space Calculations must be called before the Calculate Disk Space action; otherwise, the action will fail.

SetARPReadme

Custom action

The SetARPReadme custom action resolves the directory identifier used in the Read Me setting in the General Information view. This custom action is required because ARPREADME is a Windows Installer property and these properties do not format automatically.

MigrateFeatureStates

Standard action

This action is used during application upgrade. The feature states of the original installation are read from the target machine and applied to the upgraded features.

PatchWelcome

Dialog

The PatchWelcome dialog is displayed when a patch package is applied with a full user interface. It includes control events to set REINSTALL and REINSTALLMODE with the correct options. However, when the user interface is suppressed, you must set the properties at the command line.

InstallWelcome

Dialog

The InstallWelcome dialog displays your Welcome panel when an InstallScript MSI installation is run.

SetupResume

Dialog

This dialog opens when a previously canceled installation is resumed.

MaintenanceWelcome

Dialog

This dialog opens when the end user tries to change a program’s installed features, remove the program, reinstall the program, run an installation for the second time, or select the current product in Add or Remove Programs.

SetupProgress

Dialog

This dialog displays the installation’s progress.

ExecuteAction

Standard action

This action queries the EXECUTEACTION property to determine which top-level action should be called first, and then calls that top-level action. Top-level actions include the INSTALL, ADVERTISE, and ADMIN actions. Typically, this action starts the Installation Execute sequence.

ISSetupFilesCleanup

Custom action

This custom action appears when you add a file in the Support Files view. For more information, see Using Support Files.

Execute

The Execute sequence contains all of the actions that can change the machine’s state and do not rely upon the user interface in order to function properly. These actions include file transfer, publishing components and features, and registering COM servers. Most of the Execute sequence is skipped when you run your installation in test mode, except for custom actions that have been inserted into the sequence.

Execute Actions and Dialogs in the Installation Sequence

Name of Action or Dialog

Type of Event

Description

ISSetupFilesExtract

Custom action

This custom action extracts any files that you have added in the Support Files view. For more information, see Using Support Files.

ISSetAllUsers

Custom action

The ISSetAllUsers custom action is inserted in the both the User Interface and Execute installation sequences only if one or more records are in the Upgrade table.

AppSearch

Standard action

This action can be used to identify and locate earlier versions of your product. The Signature table that this action requires is available in the Direct Editor. Knowledge Base article Q103147 provides detailed information on using this action.

LaunchConditions

Standard action

This action evaluates a set of conditions that must return True if the installation is to continue. If any condition fails, the installation displays an error message and the installation ends. You can edit launch conditions in the General Information view.

FindRelatedProducts

Standard action

When this action is executed, the installer compares each installed product’s upgrade code to that listed in the package’s Upgrade table (supported in the Direct Editor). If a match is found, the installed package’s product code is added to the ActionProperty column of the Upgrade table.

CCPSearch

Standard action

The CCPSearch action enables you to check the end user’s system for products qualifying for upgrade. The Signature table that this action requires is available in the Direct Editor.

RMCCPSearch

Standard action

The RMCCPSearch action enables you to check an end user’s system for products qualifying for competitive upgrade. The Signature table that this action requires is available in the Direct Editor.

ValidateProductID

Standard action

Use the ValidateProductID action to set the ProductID property to the complete product identifier. Validation allows you to protect your software from illegal use by requiring end users to enter the product ID.

CostInitialize

Standard action

This action is the first step in determining how much disk space is required by the current installation configuration.

FileCost

Standard action

This action determines how much disk space will be required by the current installation configuration. This action checks to see if any files will be overwritten with newer versions and calculates how overwriting those files will affect disk space.

IsolateComponents

Standard action

This action installs a component—usually a DLL file—into an isolated location so that it will be used by only your application.

CostFinalize

Standard action

The CostFinalize action determines the total amount of disk space required by the current installation configuration. This action also verifies that all target directories are writable.

SetARPINSTALLLOCATION

Custom action

The SetARPINSTALLLOCATION custom action sets the value of the ARPINSTALLLOCATION property to the fully qualified path for the application’s primary folder.

SetODBCFolders

Standard action

The SetODBCFolders action checks for existing ODBC drivers on the target system and sets the target directory of each new driver to the location of an existing driver.

MigrateFeatureStatus

Standard action

This action is used during application upgrade. The feature states of the original installation are read from the target machine and applied to the upgraded features.

InstallValidate

Standard action

The InstallValidate action determines if there is enough disk space available for the current installation configuration.

RemoveExistingProducts

Standard action

The RemoveExistingProducts action performs a silent uninstallation of any products whose code appear in OLDPRODUCTS.

InstallInitialize

Standard action

The InstallInitialize action signals the beginning of the actions that make changes to the end user’s system.

AllocateRegistrySpace

Standard action

The installer makes sure that the system has at least as much free registry space available as specified in the AVAILABLEFREEREG property when it performs this action.

ProcessComponents

Standard action

The ProcessComponents action is responsible for unregistering and registering components. This action also registers or unregisters a component’s key path and any other clients that the component has.

UnpublishComponents

Standard action

This action, called during uninstallation, unpublishes components that were published by your original installation, even if those components have been published by other applications.

MsiUnpublishAssemblies

Standard action

The MsiUnpublishAssemblies action handles uninstallation of the assembly with the operating system.

UnpublishFeatures

Standard action

The UnpublishFeatures action removes all references to features that were originally published during installation. These references include registry entries that contain selection-state and feature-component mapping information.

StopServices

Standard action

This action stops the Windows services that are configured to be stopped. For more information, see Installing, Controlling, and Configuring Windows Services.

DeleteServices

Standard action

This action removes the Windows services that are configured to be deleted. For more information, see Installing, Controlling, and Configuring Windows Services.

UnregisterComPlus

Standard action

This action unregisters COM+ applications.

SelfUnregModules

Standard action

This action unregisters files registered by data in the SelfReg table.

UnregisterTypeLibraries

Standard action

During uninstallation, this action unregisters every file in the TypeLib table that is marked for uninstallation. This table is populated when you create a new TypeLib through the COM Registration advanced setting.

RemoveODBC

Standard action

During uninstallation, this action queries the ODBCDataSource table, ODBCTranslator table, and ODBCDriver table to find which ODBC resources should be removed during uninstallation. The resources that are marked for removal are uninstalled.

UnregisterFonts

Standard action

This action unregisters information about all the fonts that are set for uninstallation.

RemoveRegistryValues

Standard action

The RemoveRegistryValues action removes values from the end user’s registry if all of the following conditions are met:

The values have been authored into the Registry table.
The values are marked for uninstallation.
The component to which the registry entry belongs is set to run from source or is installed locally.

UnregisterClassInfo

Standard action

This action manages system registry information removal for COM classes that belong to features that are being uninstalled.

UnregisterExtensionInfo

Standard action

This action unregisters all extension-related information from the end user’s system during uninstallation.

UnregisterProgIdInfo

Standard action

This action unregisters all of the ProgIDs created in the File Types advanced setting.

UnregisterMIMEInfo

Standard action

This action queries the MIME table of the current feature that is being uninstalled, and unregisters the MIME information for the servers found therein. This information is created through the File Types advanced setting.

RemoveIniValues

Standard action

This action removes only the .ini information that has been associated with a component in the IniFile table—or using the INI File Changes view. After verifying the presence in the IniFile table, this action removes all .ini files that are listed in the RemoveIniFile table if the component with which those files are associated is marked for uninstallation and the component was installed locally or set to run from source. The RemoveIniValues action also removes all .ini files that were written with the WriteIniValues action if the components with which they are associated are marked to be uninstalled.

RemoveShortcuts

Standard action

This action removes all advertised shortcuts to features that are marked for uninstallation. It also removes all non-advertised shortcuts to components that are marked for uninstallation.

RemoveEnvironmentStrings

Standard action

When a component is removed, this action reverses any changes made to environment variables by the WriteEnvironmentStrings action during installation or reinstallation. You can specify environment variable changes using the Environment Variables view.

RemoveDuplicateFiles

Standard action

This action removes files that were created by the DuplicateFiles action. For this action to succeed, the component associated with the duplicate file must be marked for uninstallation.

RemoveFiles

Standard action

This action removes files that were originally installed by the InstallFiles action, if those files were set to run from source or installed locally, and the component with which they are associated is marked for uninstallation.

RemoveFolders

Standard action

The Remove Folders action unregisters and removes any empty folders that are associated with components that are marked for uninstallation and run from source.

CreateFolders

Standard action

This action creates empty folders for components that are set to be installed locally. These new folders are then registered with the associated component GUID (found in the component’s Component Code property).

MoveFiles

Standard action

This action enables you to move or copy files that already exist on the target system. The MoveFiles table, used by this action, is available in the Direct Editor.

InstallFiles

Standard action

The InstallFiles action copies all of the selected feature’s files to the target machine if the component feature to which those files belong is marked for installation. Only files that are associated with components that are to be installed locally are copied to the target machine.

PatchFiles

Standard action

This action queries the Patch table to determine which installed files have patches available. Those files undergo the bit-wise patching process.

DuplicateFiles

Standard action

The DuplicateFiles action creates copies of certain files installed with the InstallFiles action. These files can be copied to the same directory as the original and given a different name, or they can be copied to a separate directory while maintaining the original name. The DuplicateFiles table, used by this action, is available in the Direct Editor.

BindImage

Standard action

Writes the virtual address of imported DLL file functions in the file’s import address table, as specified in the BindImage table, which is available in the Direct Editor.

CreateShortcuts

Standard action

This action creates the shortcuts that you specified in the Shortcuts explorer in the Shortcut view or the Setup Design view.

RegisterClassInfo

Standard action

This action registers all of the COM class info that you specified in the COM Registration advanced setting, or which was extracted by the Component Wizard or a component’s COM Extract at Build setting.

RegisterExtensionInfo

Standard action

The RegisterExtensionInfo action registers all the extensions that you specified in the File Types advanced setting.

RegisterProgIdInfo

Standard action

This action registers all of the ProgIDs that you defined in the Advanced Settings and that are linked to class servers or extension servers marked for installation.

RegisterMIMEInfo

Standard action

This action registers all of the MIME types that you defined in the File Types advanced setting that are linked to class servers or extension servers marked for installation.

WriteRegistryValues

Standard action

This action writes registry data to the target system if the associated component is marked for installation and set to run from source or installed locally. This registry information is the same data that you created in the Registry view.

WriteIniValues

Standard action

This action writes information to .ini files if the component with which this action is associated is set to be installed locally or run from source. This action and its corresponding tables are exposed in the INI File Changes view.

WriteEnvironmentStrings

Standard action

When a component is installed, this action changes the environment variables on the system specified in the Environment table or the Environment Variables view.

RegisterFonts

Standard action

The RegisterFonts action registers any fonts that you included in your installation. In most cases, they were included using the Component Wizard.

InstallODBC

Standard action

This action installs all of the drivers, translators, and data sources for the ODBC resources that you specified through the ODBC Resources view.

RegisterTypeLibraries

Standard action

This action registers any type libraries that you may have created in your installation, either through the COM Registration advanced setting or the Component Wizard.

SelfRegModules

Standard action

This action registers self-registering modules listed in the SelfReg table. This action is performed with the default user privileges.

RegisterComPlus

Standard action

This action registers COM+ applications.

InstallServices

Standard action

This action installs the Windows services that are configured to be installed. For more information, see Installing, Controlling, and Configuring Windows Services.

MsiConfigureServices

Standard action

This action configures extended customization options for Windows services. For more information, see Installing, Controlling, and Configuring Windows Services.

Note:This action is supported beginning with Windows Installer 5. Earlier versions of Windows Installer ignore this setting.

StartServices

Standard action

This action starts all services that are configured to be started. For more information, see Installing, Controlling, and Configuring Windows Services.

RegisterUser

Standard action

This action registers user information to identify the user of the program.

RegisterProduct

Standard action

This action registers the product with the installer and saves the installer database on the target machine.

PublishComponents

Standard action

This action publishes all components that are associated with advertised features.

PublishFeatures

Standard action

This action registers each feature’s installation state. This state can be absent, advertised, or installed. If the feature is installed, the PublishFeatures action writes the feature-component relationship to the registry.

PublishProduct

Standard action

This action publishes a product if it is being advertised.

ScheduleReboot

Standard action

Insert the ScheduleReboot action into the action sequence to prompt the end user to reboot the system at the end of an installation. The ScheduleReboot action is typically placed at the end of the sequence.

InstallFinalize

Standard action

This action is the last transacted step.

RemoveExistingProducts

Standard action

This action loops through all the product codes listed in the Upgrade table and removes those products.

ISSetupFilesCleanup

Custom action

This custom action appears when you add a file in the Support Files view. For more information, see Using Support Files.