Microsoft Windows Installer 3.0 shipped as part of Microsoft Windows XP Service Pack 2 (SP2) and is now available as a redistributable system component for Microsoft Windows 2000 SP3, Microsoft Windows 2000 SP4, Microsoft Windows XP, Microsoft Windows XP SP1, and Microsoft Windows Server 2003. The additional features help make servicing easier and more efficient. (Servicing includes authoring, creating, distributing, and managing updates to applications.) These features also address issues that exist with earlier versions of the Windows Installer.
For Windows XP users
To install Windows Installer 3.0, update to Windows XP SP2.
For Windows Server 2003 and Windows 2000 Server users
Microsoft Windows Installer 3.0: KB884016 version 1.0 (November 8, 2004)
Microsoft Windows Installer 3.0: KB884016 version 2.0 (November 15, 2004)
This revised package adds the ability to install Windows Installer 3.0 on computers that are running the Windows 2000 Multilingual User Interface Pack (MUI).
The following file is available for download from the Microsoft Download Center:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to obtain Microsoft support files from online services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
New features in Windows Installer 3.0
With patch sequencing, a set of new or existing patches are deployed in the correct logical order, regardless of the chronological order that the patches were received in on the computer.
You can now remove patches that are installed with Windows Installer 3.0 if they are marked as removable in the patch package. Patch removal enables the patched program to be returned to the state that the program was in before the patch was applied.
More efficient patching
Several improvements have been made to patching in this release. These improvements include the following:
You can double-click a patch file to apply it.
Patches are smaller and more reliable.
Delta compression patches no longer require the source media.
You can install multiple patches in one transaction.
You can install patches that are targeted to different products in a single transaction.
Non-administrator patches and patch elevation
User with Limited accounts can now apply patches that have been marked as trusted by the system administrator.
Source list APIs and inventory management APIs
With new source list APIs, system administrators can easily examine and change the list of source locations that are registered with the Windows Installer. Windows Installer 3.0 also supports rich product, feature, component, and patch inventory queries through new inventory management APIs. Users with privileged accounts can use these APIs to enumerate across all user and installation contexts.
Standard command-line options
To ease program deployment, the Windows Installer supports standard, easy-to-understand command-line options that control display and restart behavior, and the installation, removal, logging, and application of updates. Windows Installer 2.0 command-line options will continue to be supported and can be used with new command-line options. The following new command-line options are supported:
Windows Installer 3.0 also supports the msiexec /? option. You can use this option to display all the command-line parameters that are available in Windows Installer 3.0.
Better assembly servicing
Support for binary delta patching and new assembly authoring and servicing guidelines improve assembly servicing.
Improved interface for Add or Remove Programs in the Windows XP Control Panel
The Add or Remove Programs feature in Control Panel now lets users view and interact with the installed updates to programs. With Windows XP SP2, users can select a single check box to view program updates and their relationship to a program. Updates are now grouped with a relevant program and include an installation date.
Issues that are addressed in Windows Installer 3.0
Windows Installer did not use a correct token after the LogonUser function had been called.
Failure occurred when a custom action called an API that queried for a string that was larger than 256 characters.
"The Windows Installer Service could not be accessed" error was displayed when MSIServer class registration was missing on the server.
The MsiOpenProduct function failed when the product's registration was corrupted.
Setup failed if you closed a browsing window by double-clicking the program icon after you opened the program icon menu.
The ServiceInstall table did not install services correctly if the path contained a space.
The MsiGetComponentPath function sometimes failed unexpectedly.
When you canceled program installation during the installer engine initialization, the action was ignored and returned an unexpected error.
When you tried to remove a program, an incorrect program name was displayed as the running program.
An MsiAssemblyName table that was not written correctly could prevent the removal of global assemblies on your computer.
Windows Installer rolled back an installation when commit custom actions failed, but ultimately reported that the installation was a success instead of a failure.
The Windows Installer did not let the external user interface filter for files in use messages. Windows Installer 3.0 now adds the INSTALLLOGMODE_FILESINUSE = (1 << (INSTALLMESSAGE_FILESINUSE >> 24)) parameter to public headers.
The DependantService registry value was truncated.
Windows Installer provided insufficient logging information when the BindImage API failed.
Windows Installer did not declare the INSTALLMODE_NODETECTION_ANY parameter in the public header for the MsiProvideAssembly function.
COM activation failed if a component was run from a source and if source validation failed.
An actionable pointer was displayed as an hourglass and did not change.
A service did not shut down after it failed.
If an administrator or local system was denied access to a file, the Windows Installer could not delete the file.
The ServiceInstall table did not respect the msidbServiceInstallErrorControlVital bit if modal dialogs were disabled by the /qb- or /qn switches.
The OpenPackage method ignored the Safe Session flag.
The msiUILevelSourceResOnly installation table definition was missing from the typelib definition for the Windows Installer Automation interface.
Versioned files could not be installed if companion files were specified with run-from-source components.
The error dialog box that is used by the Customer Information dialog box used the wrong pointer.
When you pressed the spacebar or the ENTER key, you enabled a hidden Cancel button.
Windows Installer did not let non-administrators generate advertisement scripts when DisableMSI=1.
Security errors displayed only the OK button when you were prompted to click Retry or Cancel.
Environment variables were lost when you removed programs.
The Windows Installer API that provides component paths returned incorrect paths if the component was installed with a run-from-source component and if the media disk ID for the component was more than 99.
Windows Installer could not remove files with read-only permissions for the administrator and system accounts.
The FilesInUse dialog box may have displayed incorrect window titles if the window titles contained [propertyname] references.