This issue occurs because Microsoft Windows Installer can only run one installation at a time unless it is a nested installation.
For more information about nested installations, visit the following Microsoft Web site:
Two Windows Installer installations cannot be run in the same process. If you try to call the Installer's API, you receive the "ERROR_INSTALL_ALREADY_RUNNING" error message in the following two scenarios:
- While the _MSIExecute mutex is set. The _MSIExecute mutex is set only while processing the InstallExecuteSequence table, the AdminExecuteSequence table, or the AdvtExecuteSequence table.
- While the current process is processing the InstallUISequence table or the AdminUISequence table.
Reasons Why the Second Instance of the Windows Installer Process Occurs
The Windows Installer is started to start a Maintenance Mode process because a Windows Installer file (a .msp file) is a self-contained file. It does not include a database like a regular installation package. Instead, it contains at least one database transform that adds update information to the database of the destination installation package. The Installer uses this information to apply the update files that are stored in the CAB file stream of the update package.
When an update is applied to a client computer, the Windows Installer first verifies that the update applies to the product. After this check, the Windows Installer loads the cached installer database into memory. The Windows Installer then applies the corresponding update transform to the in-memory database. The Windows Installer updates the database with all the installation changes in the update. Another update transform in the pair of transforms contains file manipulation instructions that you must have to upgrade the client computer.
How to Prevent Dual Instances of the Windows Installer
To prevent a second instance of the Windows Installer, do not repackage a Windows Installer package into another Windows Installer package such as a custom .msi file. Office updating and upgrading will not work with nested installations with the current version of the Windows Installer.
All Office public updates include a bootstrapping program that is named OHotfix. While OHotfix is not the only tool that you can use to deploy updates, it is the easiest to use because it provides a lot of the necessary updating functionality.
You can also use other updating bootstrapping programs, such as a simple batch file or a complex custom program that uses the Windows Installer API calls.
A nested installation shares the same user interface and logging settings as the main installation. Developers should note the following warnings when authoring nested installations:
- Updating and upgrading may not work with nested installations.
- The Windows Installer may not correctly cost a nested installation.
- Nested installations cannot share components:
- An administrative installation cannot also contain a nested installation.
- Integrated ProgressBars cannot be used with nested installations.
- Resources that are to be advertised cannot be installed by the nested installation.
More Detailed Information About the Office Update Installation Process
A good reference is the Office XP Patch Deployment
white paper. Although this white paper specifically references Office XP, the concepts and recommendations apply to updating for any Windows Installer-based release of Office.
For additional information about how to distribute and install Office XP Service Pack 1, Office XP Service Pack 2, and other fixes and upgrades for Office XP, click the following article number to view the article in the Microsoft Knowledge Base:
"Microsoft Office XP Update Deployment" white paper is available at the Download Center
OHotfix.exe is the bootstrapping program for Office updates and is provided as part of the update executable file (.exe). It performs a number of actions before it runs the update installation, including:
- Determines if the updates will be applied to an admin installation point or to a client Office installation.
- Checks if the Windows Installer is installed on the system.
- Determines if a minimum Windows Installer version is specified and possibly redirects to a Web page to upgrade the Installer.
- Runs Setup Watson to capture and report errors and update installation failures.
- Determines if a minimum product version is specified. If one is specified, verifies that the installed product has the specified product version number (or a later version number).
- Controls the user interface level for both the OHotfix dialog boxes and the Windows Installer.
- Checks the installed Office family products and determines the updates that each product must have.
- Captures the Windows Installer return code and determines if you must restart the computer.
Windows Installer technologies are divided into two parts that work in combination: a client-side Windows Installer service (Msiexec.exe) and a package file (.msi file). Windows Installer uses the information that is contained in a package file to install the program.
The Windows Installer is an operating system service that permits the operating system to manage the installation process.
The Msiexec.exe program is a component of the 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 Windows 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.
For more information about how to download and install an update from the Internet, visit the following Microsoft Web site: