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