Inno Setup is a free installer for Windows programs. Created in 1997, Inno Setup is still competitive and even superior to many commercial installers in terms of features and stability. Installations are created via scripts, which are ASCII text files similar to .INI files. (No, it’s not as complicated as you might think!) The scripts have the extension “.iss” (Inno Setup Script) and control every aspect of the installation. They determine what files should be installed and where, what shortcuts should be created and what they should be named, and so on.

The script files are usually edited from the Setup Compiler program. Once you have finished writing the script, select “Compile” in Setup Compiler. This will then create a finished setup program based on your script. To get a general idea of how scripts work, start Setup Compiler, click File → Open, and select one of the script files in the Samples subdirectory located in the Inno Setup directory. Once you have familiarized yourself with the sample scripts, you should have no trouble creating your own. Or you can use the sample scripts as a template for your own.

At the moment, the developers of Inno Setup state as key features:

  • support for all versions of Windows starting from 2000;
  • support for both 64-bit and 32-bit installations;
  • a built-in Pascal script handler for more flexible customization;
  • the ability to take an application and all the files needed to make it work and package them into one compact .exe file;
  • Inno Setup supports several modes of data compression. If necessary, you can disable built-in compression and use third-party archivers;
  • allows you to add registry keys during installation, run additional applications during, before and after installation;
  • ability to delete registry keys and all traces of program activity, flexibly customize the uninstaller.

Advanced customization

If there is a need to customize the installer interface, work with the registry or customize actions during the uninstallation process, the installer script will have to be modified.

The Inno Setup script is divided into sections, each of which is responsible for its own functionality. It happens that different sections may be suitable for the same purpose. The order of execution of sections is strictly defined and does not depend on the arrangement of sections in the script.