Reevaluating Component Conditions During Reinstallation

InstallShield 2013

Project: This information applies to the following project types:

Basic MSI
DIM
InstallScript MSI
Merge Module
MSI Database
MSM Database
Transform

Windows Installer evaluates a component’s condition again when a product is reinstalled if you select Yes for the component’s Reevaluate Condition setting. If the condition evaluates to true upon reinstallation, the component is reinstalled—or installed for the first time if the condition initially evaluated to false or if the component was never selected for installation.

Transitive Components

Components that were installed but whose conditions evaluate to false upon reinstallation are removed. Because of this special feature, which allows you, in effect, to swap components during reinstallation, components with Yes selected for the Reevaluate Condition setting are considered transitive components.

Consider an application that requires a different .dll file depending on whether it is installed on Windows XP or Windows Vista. You could create a component for each file and attach a condition to each component to check the version of the operating system. The component for Windows Vista would have the following condition:

VersionNT=600

The Windows XP–specific component might have the following condition:

VersionNT<600

When the product is installed on a Windows XP system, the appropriate version of the .dll file is installed and the Windows Vista version is not. What happens if the end user upgrades to Windows Vista? When the product is reinstalled, the Windows XP–specific component is uninstalled, and the Windows Vista–specific component is installed (as long as these components are both transitive).

See Also