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 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.