New Features and Design Changes in Windows Installer 2.0

Microsoft Corporation

Abstract

Windows Installer version 2.0 was released with Microsoft Windows XP, Microsoft Windows 2000 Service Pack 3, and as a redistributable for the Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows Millennium Edition (Windows Me), Windows NT 4.0 with Service Pack 6 or later, and Microsoft Window 2000 platforms.

On This Page

Acknowledgements
Introduction
Summary
Related Links

Acknowledgements

By Brian Granowitz and Carolyn Napier

Introduction

Windows Installer isn't just an outstanding software installation engine; it's an incredibly extensible software management system. Windows Installer controls the installation of software, administers the additions and deletions of software components, monitors applications installation health, and helps maintain system robustness by providing roll-back for canceled or failed installations and upgrades.

Windows Installer version 2.0 was released with Microsoft Windows XP, Microsoft Windows 2000 Service Pack 3, and as a redistributable for the Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows Millennium Edition (Windows Me), Windows NT 4.0 with Service Pack 6 or later, and Microsoft Window 2000 platforms.

Version 2.0 of Windows Installer provides increased reliability and a number of feature enhancements. Backwards compatibility was paramount in the design of version 2.0 so applications authored correctly for version 1.1 of Windows Installer would continue to function properly when installed and maintained with version 2.0.

New and Improved Features

Windows Installer version 2.0 includes many new and improved features over previous versions. These changes improve Windows Installer's ability to install and manage software on the Windows platform. These new and improved features include:

  • Installation and Management of Assemblies

    The Windows Installer is integrated with SxS (Fusion) and Common Language Runtime (CLR) assemblies.

  • Configurable Merge Modules

    Merge modules (.msm files) can now be authored to contain attributes configurable by the consumer of the merge module.

  • Increased Security

    The Windows Installer architecture is modified to increase security, such as sandboxing of all custom actions and hiding sensitive information in log files.

  • Isolation of Program Configuration Information

    A program's per-user configuration information is isolated, enabling program installations to be performed on a per-user basis.

  • Application Compatibility Infrastructure

    The Windows Installer includes an application compatibility infrastructure for handling application compatibility issues that occur.

  • Digital Signature Support

    Digital signature support is included for Windows Installer-related files, such as packages (MSI), patches (MSP), transforms (MST), and external cabinet files (CAB). Additionally, Windows Installer can verify files packaged in a cabinet (*.cab) file external to the application's *.msi.

  • Improved Patching and Updates

    Numerous enhancements improve the experience of creating and applying patches and updates, such as:

    • Simplified patch authoring through automated patch conflict resolution.

    • Eliminated unnecessary source resolution attempts. For example, in most cases you are no longer required to insert the original application CD to install a patch.

    • The installation of updates is more efficient because unnecessary un-versioned file copy operations are removed.

  • Support for Transforms and Patches From URL Sources

    Support for the installation of transforms and patches from a source referenced by a universal resource locator (URL) is added. Earlier versions contained only support for packages (MSI) from a URL source.

  • Enhancement of Operating System Features

    Integration with System Restore and Software Restriction Policies (Windows XP features).

  • Improved Terminal Server Support

  • 64 bit Service on 64 bit Windows

    The Windows Installer is a native 64 bit service for the installation of 64 bit applications on 64 bit Windows.

  • Enhanced Logging

    Event logging has been greatly improved in order to aid the troubleshooting of installation issues.

Application Compatibility

During and since the development of Windows Installer 2.0, Microsoft has tested thousands of applications for compatibility. Almost all applications designed for Windows Installer 1.1 work properly on version 2.0. In the rare cases in which compatibility issues have been discovered, the common cause was an application authored in unsupported ways for Windows Installer 1.1.

In either case, virtually all of these known issues have been resolved to provide Windows Installer 2.0 application compatibility with Windows Installer 1.1 applications. None of the incompatibilities were resolved in a way that compromised security.

While Microsoft has a high degree of confidence in Windows Installer 2.0, we cannot test all possible hardware configurations and line-of-business (LOB) applications potentially present in all environments. Therefore, we recommend you test Windows Installer 2.0 in your environment before you deploy it.

Changes with Potential Application Compatibility Impact

The following changes in Windows Installer 2.0 have the potential to cause application compatibility issues for applications written in an unsupported way.

  • Windows Installer does not support direct access of its configuration data because the location and format of the data is subject to change. As documented in the Windows Installer SDK, the only supported method of querying the Windows Installer configuration data is through the use of the Windows Installer APIs

  • The location and format of Windows Installer configuration data changed between versions 1.X and 2.0 to provide true per-user isolation of the data, for security and deployment reasons. Applications attempting to read Windows Installer's configuration data directly from the registry and expecting the 1.X format will be broken.

  • Custom actions returning an invalid status code are treated as failing custom actions with Windows Installer 2.0. The acceptable return codes from custom actions are documented in the Windows Installer SDK. In versions of Windows Installer prior to 2.0 return codes from custom actions where not filtered as vigorously. Therefore, custom actions returning an invalid status code, such as -1, might succeed on Windows Installer 1.X. These same invalid status codes might also cause a system to abruptly reboot.

  • To protect the stability of the Windows Installer service from poorly written custom actions, they are now sandboxed in a separate process with Windows Installer 2.0. Because of this, certain API calls now go over Remote Procedure Call (RPC) and are therefore subject to RPC validation. Custom Actions with erroneous behavior, such as un-initialized buffers, which did not cause the installation to fail with Windows Install 1.1, may do so with version 2.0.

  • In order to minimize the requirements for accessing the original source location, Windows Installer 2.0 uses a new feature called delayed source resolution. Application installations containing logic that relies on the source having been resolved at a particular time may fail to function properly.

  • Windows Installer 2.0 requires access to the Windows Installer service. If it fails to connect to the service, it will abort the installation attempt. In previous versions, Windows Installer would still attempt the install from the client, invoking the installation if the service could not be reached. However, there was no guarantee this method would work properly.

    With the above change, Windows Installer will fail if it cannot connect to the service. A system setting preventing connection to the service will prevent Windows Installer from running properly. One example of this is setting the default DCOM permissions authentication level set to "none" and the default impersonation level set to "Anonymous".

    In cases where system settings prevent Windows Installer from connecting to the service, the most commonly seen application installation error is

    Error 1719: "The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance."

    Windows Installer will function properly with any other default DCOM impersonation level. The following support article addresses this DCOM permissions issue and offers resolution:

    https://support.microsoft.com/default.aspx?scid=kb;EN-US;319624

  • Windows Installer 2.0 is likely to fail if there is an invalid Directory listed in the MSI file directory table. This relates to improper authoring of the Directory table, where there are invalid Directory table root properties. With versions 1.X of Windows Installer this improper authoring of the Windows Installer package could result in any number of unpredictable results.

  • Packages need a component table and at least one component. Packages without a component table won't install with Windows Installer 2.0, this is a change in behavior from version 1.1.

Application Specific Issues

The following applications are known to have compatibility issues with Windows Installer 2.0. For each application the issue is identified as well as information regarding the resolution to the issue.

1. Corel Draw 10 / Corel WordPerfect 2002, Corel Corporation

Issue: Corel Draw 10 / Corel WordPerfect 2002 will fail to uninstall with Windows Installer 2.0 if the uninstall is attempted before any repair, reinstall, or on-demand install. Alternatively, you may see double-clicking an advertised shortcut for the Corel application invokes an install.

Resolution: The resolution for this issue is already in Windows XP and Windows 2000 SP3 and later.

Work around For platforms other than Windows XP and later and Windows 2000 SP3 and later:

  • Perform a repair of the product after the installation from "Add or Remove Programs" in the "Control Panel". The exact steps will vary between operating systems.

2. OmniPage Pro 11, ScanSoft Corporation

Problem: Application may fail to install or uninstall due to an issue with a custom action.

Resolution: This issue is resolved in Windows XP. ScanSoft, the vendor of Omnipage Pro, is aware of the issue and provides support articles to resolve the issue. See the following Knowledge Base article for resolution information.

https://support.microsoft.com/default.aspx?scid=kb;en-us;324248&sd=tech

3. PC-Cillin 2000, TrendMicro Corp.

Issue: Applications fail to install or uninstall due to an issue with its custom action.

Note: PC-Cillin 2002 does not exhibit this behavior

Resolution: TrendMicro, the vendor for PC-Cillin 2000, is aware of the issue. See the following Knowledge Base article for resolution information.

https://support.microsoft.com/default.aspx?scid=kb;en-us;324632&sd=tech

4. McAfee Antivirus 5.2.1.1000

Problem: McAfee Antivirus VShield won't run properly with Windows Installer version 2.0.

Resolution: The application is not supported by McAFee on Windows XP and is blocked from installing.

5. Internet Explorer User Rights Deployment (IEURD) Tool

Problem: IEURD is an installation package to enable administrators to deploy Internet Explorer to non-administrators. Because the IEURD package lacks a Component table, the advertisement or installation fails for the non-administrators.

Resolution: Microsoft Window 2000 and later and Windows XP have the update application compatibility database to resolve this issue. The current redistributable for Windows Installer, version 2.0.2600.2, does not contain this updated database. See the following knowledge base article for resolving this issue on other operating systems. (This issue only exists on NT based platforms.

https://support.microsoft.com/default.aspx?scid=kb;en-us;319560&sd=tech

Summary

Nearly all properly authored applications successfully installed with Windows Installer 1.1 will also successfully install with Windows Installer 2.0. Applications failing to install generally fail due to assumptions about Installer behavior or due to incorrect authoring. For the latter, improperly written custom actions are the most common cause of the failure.

Windows Installer 2.0 is a dramatic improvement over Windows Installer 1.1. It resolves a number of customer-reported issues, is more robust, and provides compelling new features. Great care was taken to ensure that Windows Installer 2.0 is backwards compatible with previous versions of Window Installer.

For more information on Windows Installer version 2.0, application compatibility, and the appropriate ways to design Windows Installer application installations consult the following resources:

Windows Installer application installations consult the following resources:

For the latest information about Windows XP, see the Windows XP Web site at https://www.microsoft.com/windowsxp/ .