Microsoft KB Archive/870714

= Windows installer cannot reinstall components that are removed because of the RemoveExistingProducts action =

Article ID: 870714

Article Last Modified on 1/16/2007

-

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.



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.

