Inno Setup 5.5.5

Inno Setup

Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.

Inno Setup key features:

  • Support for every Windows release since 2000, including: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003, and Windows 2000. (No service packs are required.)
  • Extensive support for installation of 64-bit applications on the 64-bit editions of Windows. Both the x64 and Itanium architectures are supported. (On the Itanium architecture, Service Pack 1 or later is required on Windows Server 2003 to install in 64-bit mode.)
  • Supports creation of a single EXE to install your program for easy online distribution. Disk spanning is also supported.
  • Standard Windows 2000/XP-style wizard interface.
  • Customizable setup types, e.g. Full, Minimal, Custom.
  • Complete uninstall capabilities.
  • Installation of files:
    Includes integrated support for "deflate", bzip2, and 7-Zip LZMA/LZMA2 file compression. The installer has the ability to compare file version info, replace in-use files, use shared file counting, register DLL/OCX's and type libraries, and install fonts.
  • Creation of shortcuts anywhere, including in the Start Menu and on the desktop.
  • Creation of registry and .INI entries.
  • Running other programs before, during or after install.
  • Support for multilingual installs, including right-to-left language support.
  • Support for passworded and encrypted installs.
  • Support for digitally signed installs and uninstalls.
  • Silent install and uninstall.
  • Unicode installs.
  • Integrated preprocessor option for advanced compile-time customization.
  • Integrated Pascal scripting engine option for advanced run-time install and uninstall customization.
  • Full source code is available (Borland Delphi 2.0-5.0 and 2009).

Download: Inno Setup 5.5.5 | 1.9 MB (Freeware)
Download: Unicode Inno Setup | 2.2 MB
View: Inno Setup Website | Changelog

Report a problem with article
Previous Story

Sony to join Windows Phone 8.1 party with Lue Z? [Update]

Next Story

Microsoft confirms Windows Phone 7.8 mainstream support ends Sep 9

4 Comments

Commenting is disabled on this article.

I might give this a try. I've been using WIX to create Windows Installers, but even simple tasks are so complicated.

It is less powerful, but also less complicated. For example, this is what it takes to write a production-ready installer for The Witcher 2. Incredibly simple when you spend a day or two getting your head around the workflow.

; Title: The Witcher 2: Assassins of Kings.
; Updated: 15-May-2014.

; Dependency: .NET Framework (http://www.microsoft.com/download/details.aspx?id=17718)
; Dependency: DirectX (http://www.microsoft.com/download/details.aspx?id=8109)
; Dependency: Visual C++ 2010 (http://www.microsoft.com/download/details.aspx?id=26999)

[Setup]

AppCopyright="CD Projekt RED"
AppId="{{D79449F7-E843-42C1-B8A7-28C655090F77}"
AppName="The Witcher 2: Assassins of Kings"
AppPublisher="CD Projekt RED"
AppVerName="The Witcher 2: Assassins of Kings"
AppVersion="3.4.1.0"

AllowNoIcons="yes"
AlwaysShowDirOnReadyPage="yes"
AlwaysShowGroupOnReadyPage="yes"
Compression="lzma2/ultra64"
DefaultDirName="{pf32}\The Witcher 2 Assassins of Kings"
DefaultGroupName="Games"
DiskSpanning="yes"
InternalCompressLevel="ultra64"
SolidCompression="yes"

OutputBaseFilename="The Witcher 2 Assassins of Kings"
OutputDir="."
UninstallDisplayIcon="{app}\bin\witcher2.exe"
VersionInfoVersion="3.4.1.0"

[Files]

Source: "Game\*"; DestDir: "{app}"; Flags: "ignoreversion createallsubdirs recursesubdirs";
Source: "Dependencies\.NET Framework\*"; DestDir: "{tmp}\.NET Framework"; Flags: "deleteafterinstall ignoreversion";
Source: "Dependencies\DirectX\*"; DestDir: "{tmp}\DirectX"; Flags: "deleteafterinstall ignoreversion";
Source: "Dependencies\Visual C++ 2010\*"; DestDir: "{tmp}\Visual C++ 2010"; Flags: "deleteafterinstall ignoreversion";

[Registry]

Root: "HKCU32"; Subkey: "Software\CD Projekt RED"; Flags: "uninsdeletekeyifempty";
Root: "HKCU32"; Subkey: "Software\CD Projekt RED\The Witcher 2"; Flags: "deletekey uninsdeletekey";
Root: "HKLM32"; Subkey: "SOFTWARE\CD Projekt RED"; Flags: "uninsdeletekeyifempty";
Root: "HKLM32"; Subkey: "SOFTWARE\CD Projekt RED\The Witcher 2"; Flags: "deletekey uninsdeletekey";
Root: "HKLM32"; Subkey: "SOFTWARE\CD Projekt RED\The Witcher 2"; ValueType: "string"; ValueName: "InstallFolder"; ValueData: "{app}\"; Flags: "deletevalue uninsdeletevalue";
Root: "HKLM32"; Subkey: "SOFTWARE\CD Projekt RED\The Witcher 2"; ValueType: "string"; ValueName: "Language"; ValueData: "EN"; Flags: "deletevalue uninsdeletevalue";
Root: "HKLM32"; Subkey: "SOFTWARE\CD Projekt RED\The Witcher 2"; ValueType: "string"; ValueName: "Release"; ValueData: "GOG"; Flags: "deletevalue uninsdeletevalue";

[Icons]

Name: "{group}\The Witcher 2 Assassins of Kings"; Filename: "{app}\bin\witcher2.exe"; Comment: "The Witcher 2: Assassins of Kings";
Name: "{commondesktop}\The Witcher 2 Assassins of Kings"; Filename: "{app}\bin\witcher2.exe"; Comment: "The Witcher 2: Assassins of Kings"; Tasks: "DesktopIcon";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\The Witcher 2 Assassins of Kings"; Filename: "{app}\bin\witcher2.exe"; Comment: "The Witcher 2: Assassins of Kings"; Tasks: "QuickLaunchIcon";

[Tasks]

Name: "DesktopIcon"; Description: "Create an icon on the Desktop."; Flags: "unchecked";
Name: "QuickLaunchIcon"; Description: "Create an icon in the Quick Launch list."; Flags: "unchecked";

[Run]

Filename: "{app}\bin\witcher2.exe"; Description: "Launch The Witcher 2: Assassins of Kings."; Flags: "nowait postinstall unchecked"

[Code]

procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
case CurStep of ssPostInstall:
begin
Exec(ExpandConstant('{tmp}\.NET Framework\dotNetFx40_Full_x86_x64.exe'), '/q /norestart /chainingpackage "The Witcher 2 Assassins of Kings"', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
Exec(ExpandConstant('{tmp}\DirectX\DXSETUP.exe'), '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
Exec(ExpandConstant('{tmp}\Visual C++ 2010\vcredist_x86.exe'), '/q /norestart', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of usPostUninstall:
begin
if DirExists(ExpandConstant('{app}')) or DirExists(ExpandConstant('{userdocs}\Witcher 2')) or DirExists(ExpandConstant('{localappdata}\The Witcher 2')) then
begin
if MsgBox('Do you want to delete all configuration and save data?', mbConfirmation, MB_YESNO) = IDYES then
begin
if DirExists(ExpandConstant('{app}')) then
begin
DelTree(ExpandConstant('{app}'), True, True, True);
end;
if DirExists(ExpandConstant('{userdocs}\Witcher 2')) then
begin
DelTree(ExpandConstant('{userdocs}\Witcher 2'), True, True, True);
end;
if DirExists(ExpandConstant('{localappdata}\The Witcher 2')) then
begin
DelTree(ExpandConstant('{localappdata}\The Witcher 2'), True, True, True);
end;
end;
end;
end;
end;
end;