Script Format Overview

Inno Setup Scripts are arranged into sections. Each section controls a different aspect of the installation. A section is started by specifying the name of the section enclosed in square brackets []. Inside each section is any number of entries.

There are two different main types of sections: those such as [Setup] whose entries contain directive names and values (in the form Directive=Value), and those such as [Files] whose entries are divided into parameters.

Here is an example:

[Setup]
AppName=My Program

[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"

Note that it is legal to specify multiple sections of the same name.

You can put "comments" in the script (which are ignored by the compiler) by placing a semicolon at the beginning of a line. For example:

; This is a comment. I could put reminders to myself here...

A C-like #include directive is supported, which pulls in lines from a separate file into the script at the position of the #include directive. The syntax is:

#include "filename.txt"

If the filename is not fully qualified, the compiler will look for it in the same directory as the file containing the #include directive. The filename may be prefixed by "compiler:", in which case it looks for the file in the Compiler directory.

A #preproc directive is supported, which specifies whether to use the built-in preprocessor which only supports the above #include directive or to use Inno Setup Preprocessor (ISPP) which supports many more directives. The syntax is:

#preproc builtin
#preproc ispp

By default, scripts use ISPP if available, and .isl files use the built-in preprocessor.


See also:
Parameters in Sections
Constants
Common Parameters
Components and Tasks Parameters
[Setup] section
[Types] section
[Components] section
[Tasks] section
[Dirs] section
[Files] section
[Icons] section
[INI] section
[InstallDelete] section
[Languages] section
[Messages] section
[CustomMessages] section
[LangOptions] section
[Registry] section
[Run] section
[UninstallDelete] section
[UninstallRun] section
Pascal Scripting: Introduction