This article was previously published under Q310598
This article describes the Windows Installer software installation technology. This technology consists of the Windows Installer server for 32-bit Windows operating systems and a new package file format used to hold information about configuration and installation.
Windows Installer is not just an installation program; it is an extensible software management system. Windows Installer manages the installation of software, manages the additions and deletions of software components, monitors file resiliency, and maintains basic disaster recovery by using rollbacks.
In addition, Windows Installer supports installing and running software from multiple sources, and can be customized by developers who want to install custom programs.
The Windows Installer includes the following functionality:
It restores the original computer state if there is an installation failure. Windows Installer keeps track of all changes that are made to the system during the program installation process. If the installation does not succeed, the installer can restore the system to its initial state. This is known as "rollback."
It helps prevent certain forms of inter-program conflicts. A program that is being installed or removed may cause problems with another program already on the computer, or even to cause the computer to stop responding (hang). The installer enforces installation rules that help prevent conflicts caused when an installation operation makes updates to a dynamic-link library (DLL) file shared by an existing program, or when a removal operation deletes a DLL file shared by another program.
It diagnoses and repairs corrupted programs. A program can ask the installer to determine whether an installed program has any missing or corrupted files. It can then ask the service to repair that program as necessary by copying again only those files found to be missing or corrupted.
It reliably removes existing programs. The installer can reliably remove any program it previously installed, and remove all the associated registry entries and program files, except for those shared by other installed software.
It supports the on-demand installation of program features. The installer can be instructed to initially install a minimal subset of a program. Later, additional components can be automatically installed the first time you use a feature that requires additional components.
It supports unattended program installation. The installer supports the ability to script a program installation according to administrator instructions.
The Windows Installer technology is divided into two parts that work in combination; these include a client-side installer service (Msiexec.exe) and a Microsoft Software Installation (MSI) package file. Windows Installer uses information contained in a package file to install the program.
The Msiexec.exe program is a component of Windows Installer. When it is called by Setup, Msiexec.exe uses Msi.dll to read the package (.msi) files, apply any transform (.mst) files, and incorporate command-line options supplied by Setup. The installer performs all installation-related tasks, including copying files to the hard disk, making registry modifications, creating shortcuts on the desktop, and displaying dialog boxes to prompt for user installation preferences when necessary.
When Windows Installer is installed on a computer, it changes the registered file type of .msi files so that if you double-click an .msi file, Msiexec.exe runs with that file.
Each MSI package file contains a relational-type database that stores instructions and data required to install (and remove) the program across many installation scenarios.