Windows Installer In a Nutshell
Hey folks, how is it going? I have been getting a lot of e-mail from readers asking about different tools and technologies that include or work around Windows Installer. I am including the below information to give an overview of that technology to hopefully clear up for people what it is that the Windows installer does:Hey folks, how is it going? I have been getting a lot of e-mail from readers asking about different tools and technologies that include or work around Windows Installer. I am including the below information to give an overview of that technology to hopefully clear up for people what it is that the Windows installer does:
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 features include:
- Restores original computer state upon installation failure: Windows
Installer keeps track of all changes 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
- Helps prevent certain forms of inter-program conflicts: It is not unusual
for a program that is being installed or uninstalled to 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 an
uninstallation operation deletes a DLL file shared by another program.
- 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.
- Reliably uninstalls existing programs: The installer can reliably
uninstall any program it previously installed, removing all the associated
registry entries and program files, except for those shared by other
- 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 features that require additional components.
- Supports unattended program installation: The installer supports the
ability to script a program installation according to administrator
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 onto 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 double-clicking an .msi file runs Msiexec.exe with that file.
Each MSI package file contains a relational-type database that stores instructions and data required to install (and uninstall) the program across many installation scenarios.
I got most of the information from support note 242479 on the Microsoft site. You can go there and search for information that might help to answer many of your questions.