Val0009

InstallShield 2026

Project: This information applies to the following project types:

Basic MSI
InstallScript MSI
QuickPatch

Message 1(Warning)

A registry entry has been removed from the component [1]. There exists a corresponding entry in the RemoveRegistry table, however, that entry is not associated with this component. This may result in the registry entry not being removed when an upgrade is run.

[1] is the name of the component from which a registry entry has been removed in the latest version of the setup.

Message 2(Error)

A registry entry has been removed from the component [1]. This key must be added to the RemoveRegistry table, otherwise it will be orphaned by an upgrade. [2].

[1] is the name of the component from which a registry entry has been removed in the latest version of the setup. [2] is the missing registry entry in the form <Root>|<Key>|<Value>.

Description

When a small update or minor upgrade is performed, any registry entries that have been removed from the latest installation will not automatically be uninstalled from the target machine. The reason is that a minor upgrade will recache the local .msi database. This recached copy no longer contains any reference to these registry entries, since it has been removed from the installation.

To remove this registry entry, add entries to the RemoveRegsitry table so that it will be removed when the upgrade is applied. When the upgrade is run, these RemoveRegistry table entries will be executed, and the registry entry will be deleted.

Note:This validator does not apply to major upgrades because the uninstall-and-then-reinstall nature of major upgrades does not lend itself to this type of consideration.

To perform this validation test, the validation engine compares the latest installation to an earlier version of that installation.

Corrective Action

Using the root, key, and value of a registry entry from the previous version of the installation package, create an entry in the RemoveRegistry table through the Direct Editor. The Value field can be authored with the minus character (–). This will result in the removal of the entire registry key with all of its values and subkeys.

Note:When you add an entry to the RemoveRegistry table, you are required to specify a component. This component’s install state is used to determine if a registry entry matching this RemoveRegistry signature should be removed. Ensure that you specify a component that you know will be reinstalled when the upgrade is applied.