-
Latest Version
Inno Setup 6.5.0 LATEST
-
Review by
-
Operating System
Windows 7 / Windows 8 / Windows 10 / Windows 11
-
User Rating
Click to vote -
Author / Product
-
Filename
innosetup-6.5.0.exe
-
MD5 Checksum
18eb85f640c9d7213969d1f1104cc818
Although this open-source program can be used by anyone for free, Inno Setup is really stable and offers more features than most of its similar paid alternatives.
This made it incredibly popular with worldwide audience who demanded access to perfect tools, wide OS support and advanced features such as complete uninstall tools, disk spanning, single EXE installers, support for multiple binaries inside a single package, INI/Registry management, integrated scripting engine (based on Pascal), passworded and encrypted packages, support for multiple compression algorithms, multilingual install interfaces and much more.
The first version of Inno Setup was created by developer Jordan Russell in IDE software package Embarcadero Delphi in distant 1997.
From that moment, this free software received countless updates and streamlining of a visual interface that can today easily be used by both users who have very little technical knowledge about software development and seasoned professionals.
The installers created with Inno can be of the conventional “wizard” type, can create shortcuts, launch or delete files, and can be password-protected or encrypted. The interface is not very intuitive, but various front-ends have been developed to make working with this product easier.
InnoSetup is a 100% free application that can be even used commercially, although its original developer is open to receive donations that are funding active development of this popular developer tool.
Features and Highlights
- Broad Windows Compatibility: Supports all Windows versions since 2006, including Windows 11, Windows 10 (x64 & Arm64), Windows Server editions, and older versions like Windows 7 and 8.
- Comprehensive Installation Support: Works for both 64-bit and 32-bit applications, with options for administrative and non-administrative installs.
- Single EXE Distribution: Creates a standalone installer for easy online sharing, with disk spanning support.
- Customizable Installation: Offers setup types such as Full, Minimal, and Custom, along with multilingual and right-to-left language support.
- Advanced File Handling: Supports various compression formats (deflate, bzip2, 7-Zip LZMA/LZMA2), version-based file replacement, DLL/OCX registration, font installation, and shortcut creation.
- Registry & Configuration Management: Enables adding registry and .INI entries.
- Execution Control: Allows running additional programs before, during, or after installation.
- Security Features: Includes password-protected, encrypted, and digitally signed installs and uninstalls.
- Silent & Automated Installs: Supports silent installation/uninstallation and Unicode setups.
- Extensive Customization: Features an integrated preprocessor and Pascal scripting engine for advanced runtime modifications.
- Compact & Open Source: Small 1.75 MB installer overhead, fully documented, and source code available on GitHub.
- Trusted by Industry Leaders: Used by Microsoft Visual Studio Code and Embarcadero Delphi.
- Launch the Inno Setup Compiler.
- Create a new script or use the script wizard.
- Customize installation settings in the script.
- Compile the script to generate the installer.
- Test the installer on a Windows system.
- Distribute the setup file to users.
- Windows 7, 8, 10, 11 (32-bit or 64-bit)
- 1 GHz processor or faster
- 512 MB RAM or more
- 50 MB free disk space
- Administrator privileges for installation
- Free and open-source
- Easy-to-use scripting language
- Customizable installer options
- Supports silent installations
- Works on all Windows versions
- No official GUI-based editor
- Limited support for advanced UI
- No built-in update system
- Requires scripting knowledge
- Lacks native 64-bit compression
What's new in this version:
Introducing commercial licenses:
- Over the years, a number of users have expressed to us a desire to see their organizations support the ongoing development of Inno Setup, but have found that organization policies often make it difficult or impossible to approve a donation. By introducing a commercial license option, we aim to provide a straightforward and familiar way for organizations to contribute to the project's sustainability.
- Additionally, many organizations prefer having official licenses on record for all software they use, as it helps with audits and internal compliance checks.
- Improved archive extraction"
- It's now possible to extract password-protected archives, multi-volume archives, and multiple extra archive formats such as .zip.
- Additionally the [Files] section now supports archive extraction. Writing Pascal Script to extract an archive is no longer necessary.
- All of this is optional and does not increase the size of Setup if not used.
Updated [Setup] and [Files] section:
- Added new [Setup] section directive ArchiveExtraction to specify the method of archive extraction used by new [Files] section flag extractarchive (see below) and support functions ExtractArchive and CreateExtractionPage:
- basic (default) is the method introduced by Inno Setup 6.4.0. It only supports .7z archives that are not password-protected.
- enhanced/nopassword is a new method and internally uses 7zxr.dll from the 7-Zip source code by Igor Pavlov, as-is, except that it was recompiled, code-signed, and renamed to is7zxr.dll. Compared to basic, it has lower memory requirements for archives that contain large files but increases the size of the Setup file(s). It still only supports .7z archives that are not password-protected.
- enhanced uses 7zxa.dll instead of 7zxr.dll, recompiled, code-signed, and renamed to is7zxa.dll. It still only supports .7z archives, but they may be password-protected.
- full uses 7z.dll instead of 7zxa.dll, recompiled, code-signed, and renamed to is7z.dll. It supports multiple archive formats (.7z, .zip, .rar, and more), although not as many as the original 7z.dll, to reduce its size. Additionally, it supports multi-volume archives.
- New documentation topic ArchiveExtraction has a table summarizing the differences between these methods.
- Added new [Files] section flag extractarchive and parameter ExtractArchivePassword, intended to enable the seamless integration and extraction of archives.
- The supported archive formats, beyond .7z, and the support for password-protected and multi-volume archives, depend on the aforementioned ArchiveExtraction directive, that must not be set to basic.
- Flag extractarchive must be combined with the external and ignoreversion flags. It is usually also combined with the recursesubdirs and createallsubdirs flags.
- Using a solid archive is not recommended; extraction performance may degrade depending on the solid block size.
- Archive extraction otherwise behaves the same as external file copying. For example, it supports automatic uninstallation of extracted files and can be combined with same other flags and parameters.
Example script:
- [Setup]
- ArchiveExtraction=enhanced/nopassword
- [Files]
- Source: "{tmp}MyProg-ExtraReadmes.7z"; DestDir: "{app}";
- Flags: external extractarchive recursesubdirs createallsubdirs ignoreversion
- Archive extraction now honors the file system redirection state set by 64-bit install mode, entry flags, and support function EnableFsRedirection.
Updated Pascal Scripting:
- New support function ExtractArchive replaces the deprecated Extract7ZipArchive. ExtractArchive includes an additional parameter to optionally specify a password.
- ExtractArchive and CreateExtractionPage now overwrite read-only files which already exist in the destination directory without prompting the user. Previously this would cause an extraction error.
- Added new MapArchiveExtensions support function to allow the extraction of archives with custom extensions, such as self-extracting archives.
- Added new AddEx function to support class TExtractionWizardPage to add password-protected archives.
- Finally, your support through license purchases directly enables us to improve and maintain Inno Setup.
- For these reasons we are introducing commerical licenses. If you or your organization benefit from using Inno Setup in a commercial context, we kindly ask that you purchase a license. Thank you for helping ensure the continued development of this software.
- Licenses can be purchased from our new order page, which includes more questions and answers. All commercial licenses are perpetual and require a single payment. They include two years of updates, major and minor. After this period, your current version will remain licensed and functional as-is.
Improved file downloads:
- The [Files] section now supports file downloads. Writing Pascal Script to download a file is no longer necessary and is in fact less efficient since it requires an intermediate temporary file which this new download support doesn't.
- Updated [Files] section:
- Added new [Files] section flag download and parameters DownloadUserName and DownloadPassword, intended to enable the seamless integration of downloaded files.
- Supports HTTPS (but not expired or self-signed certificates) and HTTP. Redirects are automatically followed and proxy settings are automatically used. Safe to use from services.
- Flag download must be combined with the external and ignoreversion flags. Additionally, the DestName and ExternalSize parameters must be set.
- It can also be combined with the new issigverify flag (see below) for efficient and highly secure verification of the download file.
- It cannot be combined with the comparetimestamp, recursesubdirs and skipifsourcedoesntexist flags.
- File download otherwise behaves the same as external file copying. For example, it supports automatic uninstallation of downloaded files and can be combined with same other flags and parameters.
- When combined with the new extractarchive flag (see above), the archive will be downloaded and, if the issigverify flag is also used, verified at the start of the Preparing to Install step. The archive is then extracted normally during the actual installation process.
- In this case, the value of DestName is used to determine the archive format and for display and logging purposes.
Example script:
- [Files]
- DestName: "innosetup-latest.exe"; DestDir: "{app}";
- ExternalSize: 7_000_000; Flags: external download ignoreversion
- DestName: "MyProg.ExtraReadmes.7z"; DestDir: "{app}";
- ExternalSize: 275; Flags: external download extractarchive ignoreversion
- Added example script DownloadFiles.iss to demonstrate how to use a single [Files] entry to download a file, or to download and extract an archive, with verification.
New signature-verification capability:
- Inno Setup now includes an integrated signature-verification capability that can be used to detect corruption or tampering in your files at compile time, before files are included in an installer being built, or during installation, before Setup copies external files onto a user's system.
- Any type of file may be signed and verified, and creation of signatures does not require a certificate from a certificate authority. There is no cost involved.
- Note, however, that these signatures cannot be used to eliminate an "Unknown publisher" warning message shown by Windows when an installer or other EXE file is started. That requires a completely different kind of signature (Authenticode) embedded inside the EXE file by a different tool (Microsoft's signtool.exe), and it does require a (usually expensive) code-signing certificate from a certificate authority.
A more detailed summary:
New [ISSigKeys] section:
- Added a new optional [ISSigKeys] section for defining keys used by the compiler and Setup to verify file signatures.
- Supports parameters Name (required) and Group to identify keys, parameters KeyFile, PublicX, and PublicY to specify the key values, parameter KeyID to double-check the key values, and parameter RuntimeID for runtime identification of the key.
- Key files are human-readable and can be created using Inno Setup Signature Tool (see below).
Example section:
- [ISSigKeys]
- Name: anna; KeyFile: "anna.ispublickey"; Group: exesigner
- Name: ryan; KeyFile: "ryan.ispublickey"; Group: exesigner
- Name: ivan; KeyFile: "ivan.ispublickey"; Group: docsigner
- ; max is trusted for both exe and doc signing
- Name: max; KeyFile: "max.ispublickey"; Group: exesigner docsigner
- ; the boss also has a key
- Name: bosskey; KeyFile: "boss.ispublickey"
Updated [Files] section:
- Added a new issigverify flag for enforcing cryptographic signature verification of source files using a key from the [ISSigKeys] section, enhancing security during both compilation and installation.
- When used without the external flag, verification is performed during compilation, aborting if it fails. When used with the external flag, verification occurs during installation, ensuring the integrity of files as they are copied.
- Requires an .issig signature file to be present in the same directory as the source file. Signature files are human-readable files and can be created using the Inno Setup Signature Tool.
- Has little performance impact since verification occurs while source files are being compressed/copied and each file's contents are only read once; the only extra I/O comes from reading the tiny .issig files. Only archives and downloaded files are read a second time.
- The verification process is protected against the Time-Of-Check to Time-Of-Use (TOCTOU) problem.
- Can be used to verify downloaded files, offering flexibility over SHA-256 checks as script changes aren't needed for file updates. See the new DownloadFiles.iss example script for an example.
- Added a new and optional ISSigAllowedKeys parameter to restrict which keys or groups of keys from the [ISSigKeys] section are permitted for signature verification using the issigverify flag.
- Note: The issigverify flag cannot be combined with the sign or signonce flags. Use signcheck instead.
Example section:
- [Files]
- Source: "MyProg.exe"; DestDir: "{app}";
- ISSigAllowedKeys: "exesigner bosskey"; Flags: issigverify
- Source: "MyProg.chm"; DestDir: "{app}";
- ISSigAllowedKeys: "docsigner bosskey"; Flags: issigverify
- Source: "{src}Extra*.chm"; DestDir: "{app}";
- ISSigAllowedKeys: "docsigner bosskey"; Flags: issigverify external;
- Excludes: "*.issig"
- ISSigAllowedKeys: "exesigner bosskey";
- Flags: issigverify external download ignoreversion;
- DestName: "innosetup-latest.exe"; ExternalSize: 7_000_000
New Inno Setup Signature Tool:
- Added ISSigTool.exe, a new command-line utility designed to sign files using ECDSA P-256 cryptographic signatures.
- Offers commands to sign and verify files, to export public keys and to generate private keys.
Example commands:
- issigtool --key-file="MyKey.isprivatekey" generate-private-key
- issigtool --key-file="MyKey.isprivatekey" sign "MyProg.dll"
- issigtool --key-file="MyKey.isprivatekey" export-public-key "MyKey.ispublickey"
- issigtool --key-file="MyKey.ispublickey" verify "MyProg.dll"
Updated documentation:
- Added new [ISSigKeys] section topic
- Updated [Files] section topic
- Added new .issig Signatures: Introduction topic
- Added new Inno Setup Signature Tool topic
Other related changes:
- The compiler now verifies additional precompiled files, such as Setup.e32 and SetupLdr.e32, to ensure they remain unchanged before using them. Can be disabled using new [Setup] section directive DisablePrecompiledFileVerifications, though doing so is not recommended.
- Added new [Files] section parameter Hash. Instructs the compiler or Setup to do a simple SHA-256 hash check instead of a full signature verification, as an alternative to using the issigverify flag.
Example script:
- [Files]
- DestName: "ISCrypt.dll"; DestDir: "{app}";
- Hash: "2f6294f9aa09f59a574b5dcd33be54e16b39377984f3d5658cda44950fa0f8fc";
- ExternalSize: 2560; Flags: external download ignoreversion
Pascal Scripting:
- Added new ISSigVerify and DownloadTemporaryFileWithISSigVerify support functions.
- Added new AddWithISSigVerify and AddExWithISSigVerify functions to support class TDownloadWizardPage. See updated example script CodeDownloadFiles.iss for an example.
- Other changes
Compiler IDE:
- The Find in Files result list will now update its line numbers when you add or delete lines.
- The Highlight occurrences of current word option (which is disabled by default) no longer highlights a section's directive names, parameter names, or Pascal keywords. The Highlight occurrences of current selection option (which is enabled by default) still does.
- Dark mode is now supported throughout.
- Improved support for high-contrast themes.
- Improved support for screen readers.
- [Setup] section directive Encryption can now be set to full, which will encrypt the entire installation and requires the password to be specified using the /PASSWORD= command line parameter.
- Increased the maximum value of [Setup] section directive LZMANumBlockThreads from 32 to 256.
- [Files] section parameter Excludes can now be combined with the external flag.
- Parameters ExternalSize, ExtraDiskSpaceRequired, and UninstallDisplaySize now support digit separators. Example: UninstallDisplaySize=1_073_741_824.
ISPP changes:
- Added predefined variable __DIR__. Returns the directory of the current include file.
- Renamed predefined variables __FILE__ to __FILENAME__ and ISPPCC_INVOKED to ISCC_INVOKED. The old names still work.
- Renamed support function RemoveBackslash to RemoveBackslashUnlessRoot. The old name still works.
- Fix: The return value of support function ExtractFilePath did not always include a trailing backslash as intended.
- Pascal Scripting changes:
- Added new TBitmapButton support class which works just like TBitmapImage, but is accessible by keyboard and compatible with screen readers. Make sure to set the Caption property, even if it isn't visible. See updated example script CodeClasses.iss for an example.
- Added new InitializeBitmapButtonFromIcon and GetSHA256OfStream support functions.
- Added new LastBaseNameOrUrl property to support class TDownloadWizardPage. See updated example script CodeDownloadFiles.iss for an example.
- Fix: Event function CurPageChanged is now always only triggered when the current page actually changes. Before it was called twice in a row for wpPreparing when the script had a PrepareToInstall event function which returned a non empty string to instruct Setup to stop.
- When available, Setup now retrieves the temporary directory path using the GetTempPath2 API, which was first introduced in Windows 11 and later backported to Windows 10 and Windows Server 2016 via monthly updates. When running under the SYSTEM account, GetTempPath2 returns a private directory (typically C:WindowsSystemTemp), potentially enhancing security. On older versions of Windows or systems that haven't been updated, Setup falls back to the original GetTempPath API. (This change adds defense-in-depth; it does not address a known vulnerability.)
- Inno Setup 6.4.3 increased the maximum width of all task dialogs by about 50%, which helps to keep long paths from being truncated with ellipses. It now only does this if the task dialog's content actually contains a path.
- All official translations which still had an UTF-8 BOM had their BOM removed. Using a BOM in UTF-8 encoded files is not needed and not recommended since Inno Setup 6.3.0.
- Inno Setup is now built using Delphi 12.3 Athens instead of Delphi 12.1 Athens. Thanks to Ian Barker from Embarcadero for providing us with a license!
- Documentation improvements.
- Minor tweaks.
- Some messages have been added and removed in this version: (View differences in Default.isl.)
New messages:
- DownloadingLabel2, ExtractingLabel.
- ArchiveIncorrectPassword, ArchiveIsCorrupted, ArchiveUnsupportedFormat
- RetryCancelSelectAction, RetryCancelRetry, RetryCancelCancel
- StatusDownloadFiles.
- SourceVerificationFailed, VerificationSignatureDoesntExist, VerificationSignatureInvalid, VerificationKeyNotFound, VerificationFileNameIncorrect, VerificationFileTagIncorrect, VerificationFileSizeIncorrect, VerificationFileHashIncorrect.
- ErrorDownloading, ErrorExtracting
Removed messages:
- ErrorFileHash1, ErrorFileHash2
- DownloadingLabel, ExtractionLabel
OperaOpera 120.0 Build 5543.161 (64-bit)
Ray BrowserRay Browser - Built For Gaming
PhotoshopAdobe Photoshop CC 2025 26.9 (64-bit)
BlueStacksBlueStacks 10.42.91.1001
CapCutCapCut 6.8.1
Premiere ProAdobe Premiere Pro CC 2025 25.4
PC RepairPC Repair Tool 2025
Hero WarsHero Wars - Online Action Game
SemrushSemrush - Keyword Research Tool
LockWiperiMyFone LockWiper (Android) 5.7.2
Comments and User Reviews