Windows installer cannot reinstall components that are removed because of the RemoveExistingProducts action (870714)



The information in this article applies to:

  • Microsoft Windows Installer 1.1
  • Microsoft Windows Installer 1.2
  • Microsoft Windows Installer 2.0

SYMPTOMS

When you reinstall your application that contains isolated components and the RemoveExistingProducts action is set in Microsoft Windows Installer, the files that are removed by the RemoveExistingProducts action are not installed.

CAUSE

This behavior occurs because of the peculiarity of the IsolateComponents action. Whenever the key file of the shared component exists on the computer, Windows Installer skips the installation of that particular component. However, Windows Installer will still install the isolated component. This behavior occurs because Windows Installer does not overwrite a shared file because the isolated local copy of the file is used by the installed EXE.

RESOLUTION

To resolve this problem, use one of the following methods:
  • Schedule the RemoveExistingProducts action to run after the ProcessComponents action of the updating installation. This fixes the problem because the updating installation will register itself as a client of the shared components. Therefore, the files cannot be uninstalled by the RemoveExistingProducts action.
  • Create a custom setup that calls a repair after the installation has completed.
  • Remove the application, and then install it.

STATUS

This behavior is by design.

MORE INFORMATION

Windows Installer

Windows Installer is an installation and configuration service that reduces the total cost of ownership. Windows Installer is included with Microsoft Windows Server 2003, Windows XP, Windows 2000, and Windows Millennium Edition. Windows Installer is also provided as a service pack to Windows NT version 4.0, Windows 98, and Windows 95.

With Windows Installer, users can better address the corporate deployment and provide a standard format for the component management. The installer supports advertisement of applications and features according to the operating system settings.

IsolateComponents

The IsolateComponents action installs a copy of a component such as a shared DLL in a private location for use by a specific application. A specific application is typically an EXE. This isolates the application from other copies of the component that may be installed to a shared location on the computer.

ProcessComponents

The ProcessComponents action registers and unregisters the components, their key paths, and the component clients.

Modification Type:MajorLast Reviewed:7/29/2004
Keywords:kbRepair kbDLL kbsetup kbDeployment kbAppSetup kbtshoot kbprb KB870714 kbAudDeveloper