Copyright © 1997-2025 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2025 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.
Want to be notified by e-mail of new Inno Setup releases? Subscribe to the Inno Setup Mailing List!
Using Inno Setup commercially? Please purchase a license.
Thank you to everyone who has already purchased a license! Your support is very important to our ongoing development.
Introducing commercial licensesOver 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.
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 archive extractionIt'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.
[Setup]
ArchiveExtraction=enhanced/nopassword
[Files]
Source: "{tmp}\MyProg-ExtraReadmes.7z"; DestDir: "{app}"; \
Flags: external extractarchive recursesubdirs createallsubdirs ignoreversion
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.
[Files]
Source: "https://jrsoftware.org/download.php/is.exe?dontcount=1"; \
DestName: "innosetup-latest.exe"; DestDir: "{app}"; \
ExternalSize: 7_000_000; Flags: external download ignoreversion
Source: "https://jrsoftware.org/download.php/myprog-extrareadmes.7z"; \
DestName: "MyProg.ExtraReadmes.7z"; DestDir: "{app}"; \
ExternalSize: 275; Flags: external download extractarchive ignoreversion
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:
[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"
[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"
Source: "https://jrsoftware.org/download.php/is.exe?dontcount=1"; DestDir: "{app}"; \
ISSigAllowedKeys: "exesigner bosskey"; \
Flags: issigverify external download ignoreversion; \
DestName: "innosetup-latest.exe"; ExternalSize: 7_000_000
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"
[Files]
Source: "https://jrsoftware.org/download.php/iscrypt.dll?dontcount=1"; \
DestName: "ISCrypt.dll"; DestDir: "{app}"; \
Hash: "2f6294f9aa09f59a574b5dcd33be54e16b39377984f3d5658cda44950fa0f8fc"; \
ExternalSize: 2560; Flags: external download ignoreversion
Some messages have been added and removed in this version: (View differences in Default.isl.)
Note: The official Icelandic translation has been reclassified as unofficial due to the absence of a maintainer.