MSI - MicroSoft Installer

- commonly called the Windows Installer -

See also the Windows Installer FAQ

See also Fixing the Windows Installer

In the past, Microsoft, along with everyone else - used simple installation methods, where an "inf" file was referenced for installation parameters, folder locations, options, etc.  But for the past several years, Microsoft has switched to the "Windows Installer", also called MSI (MicroSoft Installer).

Now the software applications come with Windows Installer package files.  You must have already installed the Windows Installer itself to be able to run the installation.  Many of the applications come with both the package files and the Windows Installer itself - in case you do not have it loaded.

Microsoft Windows 2000, Windows Millennium Edition (Windows Me), and Windows XP include Windows Installer. Windows 2000 includes version 1.1 of Windows Installer, Windows Me includes version 1.2, and Windows XP includes version 2.0. Windows 2000 SP3 also contains version 2.0 of Windows Installer.  Microsoft has upgraded all installers to v2.0 - BUT there are three different v2.0 Installers . . .  

1)  Download Windows Installer 2.0 for Win95-98-ME

2)  Download Windows Installer 2.0 for WinNT-2000

3)  Windows Installer 2.0 for WinXP  -  Windows XP contains Windows Installer 2.0 - and MS does not offer a separate file to reinstall this !!!  However, you can reinstall it by re-installing SP1.  But before you try that - see the "Fix Windows Installer" section, which has a very high success rate !!

There are two parts to this.  

Most people either have v1.0, 1.1, or v2.0 on their machine.  You may as well upgrade to 2.0 since it is backwards compatible.

 

Description

The Installer is actually a relational database. This database consists of the Installer package (data1.msi). This package contains information such as the installation sequence, system dependencies, destination folder paths, setup properties, component to feature relationship, and overall installation options. This database is never actually changed or written to. Instead, it uses what is called a Transform file (.mst) to apply customizations that you desire, to transform the database from its default state. The Installer doesn't stop there. It also is used for post-installation features such as Detect and Repair, Add/Remove programs, Run From Network and Install on First Use options. It is also used to give Elevated Rights (which is not turned ON by default) to an application on Windows NT so the user doesn't have to be a member of the local NT Administrator group. Overall, the Installer technology creates a higher level of customization than has ever been attempted before.

Windows Installer technologies are divided into two parts that work in combination: a client-side installer service (Msiexec.exe) and a package file (.msi file). Windows Installer uses the information contained within a package file to install the application.

Installer service
Windows Installer is an operating system service that allows the operating system to manage the installation process.
Installer program
The Msiexec.exe program is a component of Windows Installer. This program uses a dynamic link library, Msi.dll, to read the package files (.msi), apply transforms (.mst), and incorporate command-line options. The installer performs all installation-related tasks: copying files onto the hard disk, making registry modifications, creating shortcuts on the desktop, and displaying dialog boxes to query user installation preferences when necessary.

When Windows Installer is installed on a computer, the file association capabilities of the operating system are modified to recognize the .msi file type. When a file with the .msi extension is double-clicked, the operating system associates the .msi file with Windows Installer and runs the Msiexec.exe application.

Installation package file
Each package (.msi) file contains a relational type database that stores all the instructions and data required to install (and uninstall) the program across many installation scenarios. For example, a package file could contain instructions for installing an application when a prior version of the application is already installed. The package file could also contain instructions for installing the software on a computer where that application has never been present.

Because the database is relational, changes made to one table are propagated automatically throughout the database. This is a very efficient process for introducing consistent changes into the installation process that simplifies customizing a large application or group of applications. The Windows Installer database tables reflect the general layout of the entire group of applications, including:

The Windows Installer database (.msi file) consists of multiple interrelated tables that together compose a relational database of the information necessary to install a group of features. The following table describes the groups of related tables:

Group Description
Core table group Describes the fundamental features and components of the application and installer package.
File table group Contains the files associated with the installation package.
Registry table group Contains the registry entries.
System table group Tracks the tables and columns of the installation database.
Locator table group Used to search the registry, installer configuration data, directory tree, or .ini files for the unique signature of a file.
Program installation group Holds properties, bitmaps, shortcuts, and other elements needed for the application installation.
Installation procedure group Manages the tasks performed during the installation by standard actions and custom actions.
 
Transforms
The installation process can be manipulated by applying transforms (.mst) to the installation database. A transform makes changes to elements of the database. For example, Windows Installer can use a transform file to change the language in the user interface of an application. The Windows Installer transform files modify the installation package file at installation time, and can therefore dynamically affect the installation behavior.

Customization transforms, much like patches, remain cached on the computer. These transforms are applied to the base package file whenever Windows Installer needs to perform a configuration change to the installation package. Transforms are applied at initial installation; they cannot be applied to an already installed application.