Val0005

InstallShield 2026

Project: This information applies to the following project types:

Basic MSI
InstallScript MSI
QuickPatch

Message 1(Warning)

The default InstallLevel for feature [1] is zero. If this feature gets enabled on install, you must author similar logic to ensure that it is also enabled in maintenance mode, otherwise in an upgrade the feature will be ignored.

[1] is the name of the feature whose InstallLevel is the cause of concern.

Message 2(Warning)

A condition for feature [1] may possibly set the InstallLevel for this feature to zero at runtime. If this feature gets enabled on install, you must author similar logic to ensure that it is also enabled in maintenance mode, otherwise in an upgrade the feature will be ignored.

[1] is the name of the feature whose InstallLevel is the cause of concern.

Description

The significance of setting a feature InstallLevel to zero is that it will cause the feature to appear as disabled at run time, and the user will not be able to enable it. It is tempting to set this feature to zero by default and then enable it as needed through a feature condition.

In an upgrade, if this feature condition does not get evaluated so that it can set the install level to a value other than zero, the InstallLevel for the feature will remain at zero. Therefore, no changes made to the components in that feature will be installed.

Another variation of this issue is that the feature InstallLevel defaults to something other than zero, but there exists a feature condition that sets this feature InstallLevel to zero at run time. This issue raises problems for major upgrades, since the previous installation is already in the field.

Val0005 applies to all upgrade types: major, minor, and small.

To perform this validation test, the validation engine will need to examine only the latest version of your setup.

Corrective Action

Ensure that any processing that can effect the evaluation of these feature conditions is also performed when an upgrade is run. Remember that in an upgrade, the user interface being displayed to the end user may be different from the user interface displayed the first time the installation is run.

Making sure that your feature InstallLevel values do not default to zero is important so that a major upgrade will be able to safely install and uninstall files.