[Components] section

Inno Setup

[Components] section

This section is optional. It defines all of the components Setup will show on the Select Components page of the wizard for setup type customization.

By itself a component does nothing: it needs to be 'linked' to other installation entries. See Components and Tasks Parameters.

Here is an example of a [Components] section:

[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help Files"; Types: full
Name: "help\english"; Description: "English"; Types: full
Name: "help\dutch"; Description: "Dutch"; Types: full

The example above generates four components: A "main" component which gets installed if the end user selects a type with name "full" or "compact" and a "help" component which has two child components and only gets installed if the end user selects the "full" type.

The following is a list of the supported parameters:

Name  (Required)

The internal name of the component.

The total number of \ or / characters in the name of the component is called the level of the component. Any component with a level of 1 or more is a child component. The component listed before the child component with a level of 1 less than the child component, is the parent component. Other components with the same parent component as the child component are sibling components.

A child component can't be selected if its parent component isn't selected. A parent component can't be selected if none of its children are selected, unless a Components parameter directly references the parent component or the parent component includes the checkablealone flag.

If sibling components have the exclusive flag, only one of them can be selected.

Example:
Name: "help"
Description  (Required)

The description of the component, which can include constants. This description is shown to the end user during installation.

Example:
Description: "Help Files"
Types

A space separated list of types this component belongs to. If the end user selects a type from this list, this component will be installed.

If the fixed flag isn't used (see below), any custom types (types using the iscustom flag) in this list are ignored by Setup.

Example:
Types: full compact
ExtraDiskSpaceRequired

The extra disk space required by this component, similar to the ExtraDiskSpaceRequired directive for the [Setup] section.

Example:
ExtraDiskSpaceRequired: 0
Flags

This parameter is a set of extra options. Multiple options may be used by separating them by spaces. The following options are supported:

checkablealone

Specifies that the component can be checked when none of its children are. By default, if no Components parameter directly references the component, unchecking all of the component's children will cause the component to become unchecked.

dontinheritcheck

Specifies that the component should not automatically become checked when its parent is checked. Has no effect on top-level components, and cannot be combined with the exclusive flag.

exclusive

Instructs Setup that this component is mutually exclusive with sibling components that also have the exclusive flag.

fixed

Instructs Setup that this component can not be manually selected or unselected by the end user during installation.

restart

Instructs Setup to ask the user to restart the system if this component is installed, regardless of whether this is necessary (for example because of [Files] section entries with the restartreplace flag). Like AlwaysRestart but per component.

disablenouninstallwarning

Instructs Setup not to warn the user that this component will not be uninstalled after he/she deselected this component when it's already installed on his/her machine.

Depending on the complexity of your components, you can try to use the [InstallDelete] section and this flag to automatically 'uninstall' deselected components.

Example:
Flags: fixed

Common Parameters