Jordan Russell Software heeft versie 7.1.1 van Inno Setup uitgebracht. Met dit programma kunnen op eenvoudige wijze installatiepakketten voor Windows worden gecreëerd. Het programma biedt de mogelijkheid om informatie toe te voegen aan het register, kan configuratiebestanden en snelkoppelingen aanmaken en heeft de mogelijkheid om de installatiebestanden te comprimeren. Verder kan natuurlijk een uninstaller worden toegevoegd en kan bij de installatie uit verschillende talen worden gekozen. Sinds versie 6.5.0 is het ook mogelijk om een commerciële licentie af te nemen. De changelog voor deze uitgave kan hieronder worden gevonden.
ChangesFixes
- Compiler IDE: Enabled dark mode support for the menus on Windows 11 Version 26H2 (2026 Update).
- Inno Setup 7.0.0 changed the file name passed to a Sign Tool for the [Files] section flags sign and signonce to always be an extended-length path (also known as a super path). For backward compatibility with Sign Tools which don't support such paths, it's now a normal path again, unless the file can only be accessed using an extended-length path, for example because its path is 260 characters or longer.
- Updated the official Brazilian Portuguese and Italian translations.
- Added official Icelandic translation.
Digitally signing Setup
- In the 64-bit Compiler IDE and 64-bit installers, screen readers announced whether each item in a list of checkboxes and radio buttons was checked, partially checked, or disabled based on the item above it. For example, on the Setup Languages page of the New Script Wizard, a language you had just checked was still announced as not checked. This also affected Setup's wizard pages with such a list, such as Select Components (broken since 7.0.0).
- When a download failed, for example because the server couldn't be found or its certificate was invalid, Setup reported an internal error starting with "Internal error: Worker thread terminated unexpectedly with exception:" instead of just the actual error (broken since 6.5.1).
- Buttons in the Compiler IDE and Setup with a long caption which shows its accelerator key in parentheses, such as the Browse button in Korean, could be too narrow, leaving little or no space around the caption (broken since 7.1.0).
- Compiler IDE:
- Clicking OK in the Options dialog or reopening a closed tab could silently discard unsaved changes to an #include file, if you had saved that file, or another program had changed it, since the script was last opened or compiled, or if an earlier #include file couldn't be opened (broken since tabs for #include files were introduced in 6.1.0).
- Unsaved changes to an #include file were lost without a save prompt when the main script was reloaded after another program changed it, or after Automatically open #include files was turned off in the Options dialog (broken since tabs for #include files were introduced in 6.1.0).
- Several issues with replacing text and with multiple selections have been fixed. For example, Replace All could hang when the replacement text ended with the text to find, such as when replacing Program with MyProgram, and the caret could end up in the wrong place after Replace, Generate GUID, or pasting one line per selection (broken since 6.4.0). Replace All could also hang when used on the preprocessor output tab or during a compile.
- When an open #include file was changed during a compile and you switched back to the Compiler IDE before the compile ended, the file's editor kept the old contents (broken since 6.1.0).
- When a compile error was in an #include file whose tab you had closed, and the list of #include files had changed since the previous compile, the reopened tab and other #include tabs could show the contents of a different file (broken since closing tabs was introduced in 6.3.0).
- Run didn't compile the script first after an #include file was changed during a compile, and ran the previous installer instead (broken since 6.1.0).
- With Automatically open #include files enabled, which is the default, Run didn't compile the script first after another program changed an #include file, and ran the previous installer instead (broken since 6.3.0, or since 6.1.0 if the file wasn't reloaded).
- When the main script or an #include file was reloaded after another program changed it, a breakpoint marker could stay visible on a line without a breakpoint. For an #include file, the marker of a compile error could also stay visible on the wrong line. If the file became shorter, an error could also be shown. This only happened with Allow Undo after reload enabled, which is the default (broken since 6.5.2).
- The Back and Forward navigation history could show and go to the wrong #include file after a compile changed the list of #include files (broken since navigation was introduced in 6.3.0).
- Navigating back or forward, or opening the dropdown of the Back button, could show an error after a recompile produced shorter preprocessor output (broken since navigation was introduced in 6.3.0).
- While the Compiler IDE was active, the Calculator key and similar keys did nothing (broken since navigation was introduced in 6.3.0).
- With multiple selections, Ctrl+Insert pasted instead of copied when the clipboard had one line per selection, and Shift+Insert didn't paste one line per selection like Ctrl+V does (broken since this was introduced for Ctrl+V in 6.4.0).
- The editor font selected in the Options dialog wasn't applied when the name of the font contained non-ASCII characters. Also, a bold or italic font style selected there was lost after restarting the Compiler IDE.
- Compiler:
- The compiler didn't display an error message anymore when a [Files] section entry installed a DLL file from your own Windows System directory to {sys} (broken since 7.0.0). Doing so is unsafe, as explained in the Unsafe Files help topic.
- ISPP:
- Directives #dim and #redim silently ignored an equal sign after the array size, and everything after it. For example, #dim MyArray[2] = {1, 2} left all elements NULL. This is now an error. To initialize the array, remove the equal sign: #dim MyArray[2] {1, 2}.
- Support functions GetPackedVersion and GetVersionNumbers failed with an error for files without version info, instead of returning an empty string as documented.
- Support functions FindNext, FindGetFileName, and FindClose failed with an access violation instead of an invalid handle error when given 0, the result of FindFirst if no file is found.
- Command-Line Compiler (ISCC):
- The --messages-jsonl (-mj) option, added in 7.1.0, didn't apply to some errors, such as a script file which couldn't be found or an invalid command-line option, which were still output as plain text.
- When --quiet, --quiet-progress, or --preprocess was used, ISCC still showed its banner before reporting a command-line error.
- Setup:
- Security improvement: During archive extraction, a crafted .cab, .vhd, .vhdx, or .vmdk archive could make Setup open a file outside the archive's directory as a volume for reading.
- [Files] section entries with the extractarchive and recursesubdirs flags failed with an internal error if the archive contained a path of 260 characters or longer. Support function ExtractArchive wasn't affected.
- When archive extraction failed to open, read, or write a file, for example because another process had it open, it could report that the archive was corrupted or an unspecified error. It now reports the actual error.
- Inno Setup 7.0.0 introduced a maximum dictionary size of 3.8 GB instead of 1 GB for compression methods lzma and lzma2 in 64-bit installers, but lzma2 installers with a dictionary size above 3 GB failed to install, reporting that the source file was corrupted. They now support up to 3.8 GB as well.
- [Files] section entries with the external and skipifsourcedoesntexist flags failed with an internal error instead of being skipped if their Source parameter was empty after expanding constants. Likewise, [Run] and [UninstallRun] section entries with the skipifdoesntexist flag, but without the shellexec flag, failed if their Filename parameter was empty after expanding constants (both broken since 7.0.0).
- When [Setup] section directive WizardImageOpacity or WizardBackImageOpacity was used with an image without an alpha channel, the image wasn't blended with its background color (broken since these directives were introduced in 6.6.1 and 6.7.0).
- On the Preparing to Install wizard page, after an error, clicking Back and then Install again could place the options to close or not close the applications partly or fully outside the page (broken since 5.5.0).
- Setup crashed at startup if [Setup] section directive Encryption was set to full and the compression method was zip or bzip (broken since full encryption was introduced in 6.5.0).
- A console program started by support function ExecAndLogOutput or ExecAndLogOutputWithNativeSysDir with OnLog set to nil showed a console window if logging wasn't enabled, instead of always being hidden as documented. The same applied to [Run] and [UninstallRun] section entries with the logoutput flag (broken since these were introduced in 6.3.0).
- When [Setup] section directive RedirectionGuard was enabled (which it is by default), the RedirectionGuard mitigation was inherited by any child processes, which wasn't as documented. For child processes started by Setup with the (normally non-elevated) credentials of the user that started Setup initially, such as those started by [Run] section entries with the runasoriginaluser or postinstall flag, this also wasn't as intended (broken since RedirectionGuard support was introduced in 6.7.0). This is no longer the case for such processes. Notes:
- If Setup didn't have to request administrative privileges, for example because [Setup] section directive PrivilegesRequired is set to lowest, or because Setup was started with administrative privileges already, the RedirectionGuard mitigation is still inherited. This will be addressed in a future version.
- Most applications aren't affected by RedirectionGuard, but they might be, for example when your users load files from their OneDrive Personal Vault.
- Setup didn't and still doesn't enable RedirectionGuard for the application that is installed, so the issue only affects instances of it started by Setup or Uninstall.
- Pascal Scripting:
- When a COM object or a variant array was passed as an argument to a method of a COM Automation object, such as in ParentNode.appendChild(ChildNode), or assigned to a property of one, it was released one time too many. This could cause access violations, for example when using MSXML after installing a September 2026 Windows update with a new MSXML version, such as KB5124007 or KB5124008.
- Support function FloatToStr used the decimal point from the user's regional settings, such as a comma, instead of always a dot as documented. Support function StrToFloat then raised an exception when given the result (broken since 7.0.0).
- When debugging in the Compiler IDE, a runtime error could be reported on the line after the line which caused it.
- When a custom style was active, support functions TaskDialogMsgBox and SuppressibleTaskDialogMsgBox didn't show the shield icon specified by the ShieldButton parameter if that button had no custom label (broken since custom styles were introduced in 6.6.0).
- Support function WizardSetupType didn't expand constants in the description it returned, unlike support functions WizardSelectedComponents and WizardSelectedTasks.
- Support functions StringSplit, StringSplitEx, ExecAndCaptureOutput, and ExecAndCaptureOutputWithNativeSysDir could also change another array variable that shared its array with the one receiving the result, if the result had the same length (broken since their introduction). For example, after Saved := Parts; Parts := StringSplit(...), Saved was changed too. Since 7.1.0, support functions LoadStringsFromFile, LoadStringsFromLockedFile, RegGetSubkeyNames, and RegGetValueNames had the same problem, but only if the array passed to them had exactly 16 elements before the call.
- Documentation fix: Since 6.6.0, support function CreateCustomForm scales the specified client width and height itself, but its documentation and the CodeClasses.iss example script still used ScaleX and ScaleY for them, so they were scaled twice. For example, at 150% DPI the form was 2.25 times as wide and high as at 100% DPI, instead of 1.5 times. The documentation and the example script have now been corrected. If your script does the same, remove these calls. If you use the default font settings with standard DPI (100%), this doesn't change the form.
- ISPP and Pascal Scripting support function ComparePackedVersion returned the wrong result if one of the two versions had a major version of 32768 or higher (broken since 6.6.0).
- Many other minor fixes.
Important notice: If you still digitally sign Setup yourself after compilation, it is recommended to switch to using the [Setup] section directive SignTool now.
If you sign Setup yourself, Uninstall and any temporary self-copies used by Setup are not signed by default. Security software can then block these copies from running, making Setup fail to start. One example is Microsoft Defender's Attack Surface Reduction (ASR) rule Block executable files from running unless they meet a prevalence, age, or trusted list criterion. This behavior isn't new or specific to this version. Until now, the help file only mentioned the signing of the temporary self-copies briefly, in the SignedUninstaller help topic, so you might have missed it.
If you can't use SignTool, at least set SignedUninstaller to yes.
