What is Windows Installer – Tutorial 1

Windows Installer MSI theory

Windows Installer is a software deployment technology that goes well beyond installation of a single application. Windows installer native installed software supports full application sociability with other natively installed applications and operating system dependencies, unlike application virtualisation technologies.


Base Windows Installer MSI

.MSI file contains an internal database which holds the software delivery data.

Windows Installer Transform MST

.MST file is a copy of the MSI Database which is designed to apply database changes at the time of install, repair and uninstall.

Windows Installer Patch MSP

.MSP file is used specifically to apply original MSI bits of data and to perform major changes to an MSI that a transform is limited from performing.

Patch files are also used to update MSI administrative installations. This will be covered later in the course.

What’s new in windows installer 5.0

Windows Installer 5.0 is available for Microsoft Windows 7 and Windows Server 2008 R2. For a complete list of all Windows Installer versions and redistributables.


Standard Actions MsiConfigureServices

The MsiConfigureServices action configures a service for the system. This action queries the MsiServiceConfig and the MsiServiceConfigFailureActions tables.


Read more: https://msdn.microsoft.com/en-us/library/windows/desktop/dd407945(v=vs.85).aspx


Installer Functions The MsiEnumComponentsEx function enumerates installed components. The function retrieves the component code for one component each time it is called. The component code is the string GUID unique to the component, version, and language. Read More


The MsiEnumClientsEx function enumerates the installed applications that use a specified component. The function retrieves a product code for an application each time it is called. Read More


The MsiGetComponentPathEx function returns the full path to an installed component. If the key path for the component is a registry key then the function returns the registry key.

This function extends the existing MsiGetComponentPath function to enable searches for components across user accounts and installation contexts. Read More


Column Data types Formatted SDDL Text

A database field of the FormattedSDDLText data type holds a text string that describes a security descriptor using valid security descriptor definition language (SDDL.) This data type is used by the SDDLText field of the MsiLockPermissionsEx Table to secure a selected object. Read More

Properties The MSIFASTINSTALL property can be used to reduce the time required to install a large Windows Installer package. The property can be set on the command line or in the Property table to configure operations that the user or developer determines are non-essential for the installation. READ MORE


The MSIINSTALLPERUSER and the ALLUSERS properties can be set by the user at installation time, through the user interface or on a command line, to request that the Windows Installer install a dual-purpose package for the current user or all users of the computer. To use the MSIINSTALLPERUSER property, the value of the ALLUSERS property must be 2 and the package has to have been authored to be capable of installation into either the per-user or a per-machine context. Read More

Summary Table For an installation package, the Template Summary property indicates the platform and language versions that are compatible with this installation database.  The number of supported values has increased.

  • x64;1033
  • Intel;1033
  • Intel64;1033
  • ;1033
  • Intel ;1033,2046
  • Intel64;1033,2046
  • Intel;0
  • Arm;1033,2046
  • Arm;0


Read More

Database Table  

The MsiServiceConfig table configures a service that is installed or being installed by the current package. Read More


The MsiServiceConfigFailureActions table lists operations to be run after a service fails. The operations specified in this table run the next time the system is started. Read More


The MsiShortcutProperty table enables Window Installer to set properties for shortcuts that are also Windows Shell objects. Beginning with Windows Vista and Windows Server 2008 the Windows Shell provides an IPropertyStore Interface for shell objects such as shortcuts. A Windows Installer 5.0 package running on Windows Server 2008 R2 or Windows 7 can set these properties when the shortcut is installed. Read More


The MsiLockPermissionsEx Table can be used to secure services, files, registry keys, and created folders.

A package should not contain both the MsiLockPermissionsEx Table and the LockPermissions Table. Read More


Control Events MsiPrint ControlEvent

This event is published by the ScrollableText Control to enable the user to print the contents of that control. Read More


MsiLaunchApp ControlEvent

This control event runs a specified file. If the file does not exist, or if the event fails, Windows Installer logs the error in the verbose log without displaying a dialog box containing an error message. Read More


Controls Hyperlink Control

The Hyperlink control displays a HTML link to an address, which opens in the default browser for the computer. Links are not supported for protocols other than HTML. Read More

ICE Internal Consistency Evaluators – ICEs



Windows Installer Versions

Release Version Description
Windows Installer 2.0 2.0.2600.0 Released with Windows XP.
Windows Installer 2.0 2.0.2600.1 Released with Windows 2000 Server with Service Pack 3 (SP3).
Windows Installer 2.0 2.0.2600.1183 Released with Windows 2000 Server with Service Pack 4 (SP4).
Windows Installer 2.0 2.0.2600.2 Released as a redistributable.
Windows Installer 2.0 2.0.2600.1106 Released with Windows XP with Service Pack 1 (SP1).
Windows Installer 2.0 2.0.3790.0 Released with Windows Server 2003.
Windows Installer 3.0 3.0.3790.2180 Released with Windows XP with Service Pack 2 (SP2). Released as a redistributable.
Windows Installer 3.1 3.1.4000.1823 Released as a redistributable. This version is has the same functionality as version 3.1.4000.2435.
Windows Installer 3.1 3.1.4000.1830 Released with Windows Server 2003 with Service Pack 1 (SP1) and Windows XP Professional x64 Edition. Update this version to version 3.1.4000.2435 to address the issue discussed in KB898628.
Windows Installer 3.1 3.1.4000.3959 Released with Windows Server 2003 with Service Pack 2 (SP2).
Windows Installer 3.1 3.1.4000.2435 Released with a fix to address the issue discussed in KB898628. This is the latest version of Windows Installer 3.1.
Windows Installer 3.1 3.1.4001.5512 Released with Windows XP with Service Pack 3 (SP3).
Windows Installer 4.0 4.0.6000.16386 Released with Windows Vista.
Windows Installer 4.0 4.0.6001.18000 Released with Windows Vista with Service Pack 1 (SP1) and Windows Server 2008.
Windows Installer 4.5 4.5.6002.18005 Released with Windows Vista with Service Pack 2 (SP2) and Windows Server 2008 with Service Pack (SP2.)
Windows Installer 4.5 4.5.6000.20817 Released as a redistributable for Windows Vista.
Windows Installer 4.5 4.5.6001.22162 Released as a redistributable for Windows Server 2008 and Windows Vista with SP1.
Windows Installer 4.5 4.5.6001.22159 Released as a redistributable for Windows XP with Service Pack 2 (SP2) and later, and Windows Server 2003 with SP1 and later.
Windows Installer 5.0 5.0.7600.16385 or greater Released with Windows Server 2008 R2 and later and Windows 7 and later.
Windows installer 5.0 5.0.9600.16384 Released with Windows 8.1 and Later.


Windows installer file types

A windows installer installation package is a micro relational database that contains all the information required to run the install, repair and uninstall of an application by running the setup user interface. An application package comes in the form of an MSI file, there are additional files types that are also associated and recognized by the windows installer engine like.

  • .MST (Windows Installer Transform)
  • .MSP           (Windows Installer Patch)
  • .MSM (Windows Installer Merge Module)
  • .IDT (Exported Windows installer Database Table)
  • .CUB (Validation Module)
  • .PCP (Windows Installer Patch Creation File)


Windows Installer Package types

The primary.MSI can contain internal or external source files and well as cabinet files required by the installation.

Examples of Windows Installer Package types.

Compressed MSI with embedded source files.

Uncompressed MSI with Source Files.

MSI with External Cabinet file.



The windows installer package works on a concept of organising source file data registry keys, shortcuts, ini file, xml file, file type associations into features and components within the database to enable authoring of an installation when run on a windows operating system in the following way.

  • Identify the features to be presented to users
  • Organise the application into components
  • Populate the installation database with information
  • Validate the installation package.


Do you want to know the “3 common vendor installer types?  then check out more in our next tutorial

” Understanding Vendor Installers – Tutorial 1″


New to Application Packaging, check out some more of our online tutorials.


Author: Geoffrey Regalado

With career spanning over 10 years specialising as an Application Delivery Systems and Application Packaging engineer, I have worked on various enterprise projects as a technical lead and consultant. As a specialist trainer in MSI, application virtualisation and layering technologies i am also a tech evangelist in the field.