Inno Setup 6.0
Revision History
Copyright © 1997-2020 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2020 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.
Want to be notified by e-mail of updates? Then click here to subscribe to the Inno Setup announcements mailing list.
If you subscribed before October 2019, please resubscribe.
6.0.5 (2020-05-21)
- Changes to further help protect installers against potential DLL preloading attacks.
- Compiler IDE change: added Inno Setup Mailing List menu item to the Help menu.
- Inno Setup can now be installed using the new Windows Package Manager.
- Minor tweaks.
6.0.4 (2020-03-12)
- [Setup] section directives LicenseFile, InfoBeforeFile and InfoAfterFile now support objects such as images in .rtf (rich text) files.
- Added new constant: {usersavedgames}.
- Compiler IDE changes:
- The Welcome dialog is now higher and wider by default and also resizable.
- Added Dark theme support to the scrollbars (on newer versions of Windows) and the bottom tab set.
- Restart Manager changes:
- Setup now ignores attempts by the script to register Setup itself with Restart Manager for a being in use check.
- If all files are excluded by [Setup] section directive CloseApplicationsFilter, Setup now no longer calls Restart Manager's RmGetList asking it to check 0 files.
- /LOG: Now logs how many files Setup asked Restart Manager's RmGetList to check.
- Added new command line parameter /LOGCLOSEAPPLICATIONS. Instructs Setup to create extra logging when closing applications for debugging purposes.
- Fix: [Setup] section directive CloseApplicationsFilter was ignored by checks for [InstallDelete] entries.
- Windows AppLocker publisher conditions are now supported by Setup up to and including the file name level.
- Pascal Scripting change: Added new IsDotNetInstalled support function, based on code by Cristoph Nahr.
- Inno Setup Preprocessor (ISPP) change: Added new UpperCase support function.
- Fix: Event attributes for uninstall event functions now actually work.
- Minor tweaks and documentations improvements.
- Enabled HTTPS on jrsoftware.org.
6.0.3 (2019-10-11)
- /LOG: Now logs Windows compatibility mode when this is activated by the user.
- Added new [Setup] section directive: SignToolRunMinimized.
- [Setup] section directive UsePreviousLanguage now also has an effect when the Select Language dialog is not displayed because Setup is for example running silently.
- Checkboxes displayed by lists now look better on high DPI systems.
- Compiler IDE changes:
- Added Dark theme support to the toolbar.
- When paused on a breakpoint in the [Code] section the new "Debug Call Stack" view now shows the call stack.
- The "Compiler Output" and "Debug Output" views now support multi selection, an extra Select All popup menu item and Ctrl+C and Ctrl+A keyboard shortcuts. The Copy action now only copies the selected lines instead of all lines.
- Inno Setup Preprocessor (ISPP) changes:
- Array variables declared with #dim can now be initialized directly, like #dim MyArray[3] {1, 2, 3} for example.
- Added new predefined variable Tab.
- Pascal Scripting change: Added new Set8087CW and Get8087CW support functions.
- Some messages have been added in this version: (View differences in Default.isl).
- PrepareToInstallNeedsRestart: This message is used by the Preparing to Install wizard page if a restart is needed. If this message is not set by a translation, Setup will instead use FinishedRestartLabel and FinishedRestartMessage as before.
- ComponentsDiskSpaceGBLabel and DiskSpaceGBLabel: These messages are used by Setup to display required disk spaces of 1000.0 MB or more in gigabytes instead of in megabytes. If these messages are not set by a translation, Setup will instead use ComponentsDiskSpaceMBLabel and DiskSpaceMBLabel as before.
- Added official Slovak translation.
- Minor tweaks and cosmetic fixes.
Contributions via GitHub: Thanks to Vizit0r for their contributions.
6.0.2 (2019-04-26)
- Added new {sysnative} constant.
- Pascal Scripting changes:
- Added new WizardSelectComponents and WizardSelectTasks support functions.
- Renamed the IsComponentSelected and IsTaskSelected support functions to WizardIsComponentSelected and WizardIsTaskSelected. The old names are still supported, but it is recommended to update your scripts to the new names and the compiler will issue a warning if you don't.
- Minor cosmetic fixes.
6.0.1-beta (2019-03-07)
- Fix: In 6.0.0 it was no longer possible to use [Setup] section directive InfoAfterFile.
- Pascal Scripting changes:
- Fix: Added Anchors properties to all controls created by the Create...Page support functions to add full support for WizardResizable and WizardSizePercent.
- Updated the AllPagesExample.iss example script with examples of all Create...Page support functions.
- The multi-line edit control created by the CreateOutputMsgMemoPage support function now has a more modern look.
- Added official German translation.
- Demoted the official Greek, Hungarian, and Scottish Gaelic translations to unofficial because of a no longer available maintainer. To send updates yourself, see this post for what needs updating and use this form to send updates (or use GitHub). See the Inno Setup Translations page for more information.
- Other documentation improvements.
6.0.0-beta (2019-02-11)
Inno Setup 6 introduces a large number of changes:
Administrative vs. non administrative install mode
A number of changes have been made to the administrative vs. non administrative install mode functionality:
- Added new "auto" constants which automatically map to their "common" form unless the installation is running in non administrative install mode, in which case they map to their "user" form. It is recommended to update your scripts to use these "auto" constants as much as possible to avoid mistakes. The list of added "auto" constants is: {autoappdata}, {autocf}, {autocf32}, {autocf64}, {autodesktop}, {autodocs}, {autopf}, {autopf32}, {autopf64}, {autoprograms}, {autostartmenu}, {autostartup}, and {autotemplates}.
- Updated all examples and the Compiler IDE's New Script Wizard to use {autopf} instead of {pf}, etc.
- Change in default behavior: The "common" shell folder constants are no longer mapped to their "user" form if the installation is running in non administrative install mode. Instead they simply return the requested common directory. The list of affected "common" constants is: {commonappdata}, {commondesktop}, {commondocs}, {commonprograms}, {commonstartmenu}, {commonstartup}, and {commontemplates}.
- The {pf} and {cf} constants have been renamed to {commonpf} and {commoncf}. This includes {pf32} to {commonpf32}, etc. The old names are still supported, but it is recommended to update your scripts to the new names and the compiler will issue a warning if you don't.
- The {commonfavorites} constant has been removed: this directory doesn't exist anymore in Windows.
- The {userpf}, {usercf}, and {username} constants and the AlwaysUsePersonalGroup [Setup] section directive can now correctly trigger a used user areas warning.
- Pascal Scripting change: Removed the GetShellFolder support function. As the help file already recommended, use ExpandConstant instead.
- Added new [Registry] section Root value HKA. Equals HKLM in administrative install mode, and HKCU otherwise. Also supported by {reg:...} constants and HKA32/HKA64 are also supported. Note: HKA (like HKCU) should only be used for settings which are compatible with roaming profiles.
- Using [Registry] section Root value HKCR is no longer recommended, use HKA with the Subkey parameter set to "Software\Classes" instead.
- Pascal Scripting change: Added HKA and HKEY_AUTO constants. HKA32, HKA64, HKEY_AUTO_32, and HKEY_AUTO_64 are also supported.
- The Compiler IDE's New Script Wizard now offers an option to select administrative or non administrative install mode and outputs scripts which work in both modes.
- Pascal Scripting change: Added new IsAdminInstallMode support function.
- Added a Non Administrative Install Mode topic to the help file.
Overridable install mode
Once your script is fully updated to support both administrative and non administrative install mode (for example by using the new "auto" constants and the new [Registry] section Root value HKA) you can then use the following:
- Added new [Setup] section directive: PrivilegesRequiredOverridesAllowed, which can be set to one or more overrides which allow the end user to override the script's default PrivilegesRequired setting. The following overrides are supported: commandline and dialog.
- If override commandline is allowed then Setup will support two additional command line parameters to override the script's default PrivilegesRequired setting: /ALLUSERS and /CURRENTUSER.
- If override dialog is allowed then Setup will ask the user to choose the install mode based on the script's default PrivilegesRequired setting using a suppressible dialog (example if PrivilegesRequired is set to admin). Allowing dialog automatically allows commandline and when one of the command line parameters is used then Setup will not ask the user.
- Added new [Setup] section directive: UsePreviousPrivileges. If this directive is set to yes (which it is by default) and PrivilegesRequiredOverridesAllowed is set to dialog, at startup Setup will look in the registry to see if the same application is already installed in one of the two install modes, and if so, it will use that install mode and not ask the user.
- The Compiler IDE's New Script Wizard now offers options to allow the commandline and dialog overrides.
- Inno Setup's own installer script now supports both administrative and non administrative install mode and allows the dialog override.
Side-by-side installations
Support for side-by-side installations has been improved:
- Two separate installation runs that do not share the same administrative or non administrative install mode no longer count as the same application. This means you can now install these modes side-by-side even if the installers share the same AppId setting (or if AppId is not set, the same AppName setting) without the odd side effects you would get in previous versions.
- Change in default behavior: To avoid entries with identical names in the Add/Remove Programs Control Panel applet Setup will now automatically mark the new entry with a text like "Current user" or "64-bit" when necessary during a side-by-side installation.
- Added a Side-by-side installation topic to the help file.
Resizable wizard window
The wizard window is now optionally resizable:
- Added new [Setup] section directive: WizardResizable. If this directive is set to yes, the user will be able to resize the main Setup wizard window.
- Added new [Setup] section directive: WizardSizePercent, which can be used to increase the default size of all Setup and Uninstall wizard windows without increasing the font size.
- Pascal Scripting changes:
- Added new Anchors property to all controls and new KeepSizeY property to TSetupForm which allows you to add full support for WizardResizable and WizardSizePercent to all your custom controls, custom wizard pages and TSetupForm forms if you have any. See the CodeClasses.iss example script for an example. This example also shows other changes done to TSetupForm.
- Added new Constraints property to the TForm support class.
New modern wizard style
The wizard window now supports a more modern look:
- Added new [Setup] section directive: WizardStyle. If this directive is set to modern, Setup and Uninstall will show a more modern look and also the defaults for WizardResizable and WizardSizePercent change to respectively yes and 120,120.
- Change in default behavior: Earlier versions of Inno Setup also supported WizardStyle and if you still have WizardStyle=modern in your script (which was allowed for backward compatibility but didn't actually change anything) and don't want to new modern look, you should remove this line or change it to WizardStyle=classic.
- Updated all examples and the Compiler IDE's New Script Wizard to use WizardStyle=modern.
- Pascal Scripting change: Added new SurfaceColor property to the TWizardPage support class.
A few elements now always have a more modern look regardless of the WizardStyle setting:
- The Select Language dialog now has more modern look, consistent with Windows 10 task dialogs and message boxes (example).
- Flattened a few elements of Setup's interface for a more modern look.
Compiler IDE updates
The look and feel of the Compiler IDE has been updated:
- Updated all toolbar icons and flattened the interface of the Compiler IDE for a more modern look.
- The Compiler IDE now supports three themes: Light (example), Dark (example) and Classic (example). The Light theme is the new default theme, unless the system is running Windows 10 and dark mode is enabled in which case the Dark theme is the default theme. The active theme can be changed in the options.
- The Compiler IDE now uses per-monitor DPI awareness mode and also allows the "Segoe UI" font for its interface elements.
- The "Compiler Output" view is now colorized. This can be turned off in the options.
- The "Debug Output" view now uses bold text for any entry lines such as '-- File entry --'.
- Options button Associate .iss files with this compiler can now associate for the current user instead of displaying an error if administrative privileges are not available.
- Options Allow Undo after save and Show indentation guides are now on by default for new installations.
- The "Configure Sign Tools" window is now wider by default and also resizable.
Other changes
- OS requirements change: Windows 2000, XP, and Server 2003 are no longer supported. Windows Vista is now the minimum supported operating system.
- Change in default behavior: Starting with Inno Setup 6 there's only one version available: Unicode Inno Setup. Unicode Inno Setup has been available for 9 years but in case you have not yet updated to it: please see the Unicode Inno Setup topic in the help file for more information. Basically, unless you're using [Code] to make DLL calls with string parameters you shouldn't have to make any changes to your script.
- Added support for 64-bit mode on Windows 10 on ARM which can be used to install ARM64 binaries. See the 64BitThreeArch.iss example script for an example which demonstrates how to install a program built for three different architectures (x86, x64, ARM64) using a single installer.
- The Abort/Retry/Ignore dialogs shown by Setup now display task dialogs. These task dialogs are much more user friendly than the message boxes previously used (example: task dialog versus message box).
- Added new [Setup] section directive: VersionInfoOriginalFileName, which sets the original filename version value.
- The Permissions parameter supported by [Files], [Dirs] and [Registry] entries now also allows you to grant permission to the Guests group, the Local Service account, the Network Service account, and to the Creator Owner.
- Added new special-purpose HelpTextNote message that can be used to specify one or more lines of text that are added to the list of parameters in the summary shown when passing /HELP on the command line. This message defaults to an empty string so make sure to provide a non-empty default for all languages from your main script if you want to use it.
- The compiler now supports UTF-8 encoded .isl files without requiring a special extension. Translators should still always set LanguageCodePage when possible.
- The compiler will now throw an error if the $f sequence is missing in a Sign Tool command instead of executing it anyway.
- Fix: The compiler now checks OutputBaseFileName and OutputManifestFile for bad characters even if Output is set to no.
- /LOG: Now logs some additional information about Restart Manager.
- Pascal Scripting changes:
- Using event attributes it is now possible to have multiple implementations of the same event function in your script. This is especially useful in included scripts implementing an event function to avoid conflicts with the main script. See the help file for more information and the CodeExample1.iss example script for an example.
- Added new TaskDialogMsgBox and SuppressibleTaskDialogMsgBox support functions which display a message box using a task dialog (example). See the help file for more information and the CodeClasses.iss example script for an example.
- Added new CreateCallback support function which allows you to perform direct callbacks from DLL functions (like Windows API functions) to functions in your script. See the help file and the CodeDll.iss example script for an example.
- [Setup] section directives ChangesAssociations and ChangesEnvironment may now be set to a boolean expression, which may contain calls to check functions.
- Many properties which did not support mouseover evaluation from the Compiler IDE now do.
- To enable mouseover evaluation of their properties from the Compiler IDE, support objects MainForm, WizardForm, and UninstallProgressForm no longer raise an internal error if you try to access them before the forms are created. To get the old behaviour use new support functions GetMainForm, GetWizardForm, and GetUninstallProgressForm instead.
- Added new BevelKind property to the TPanel support class and new BevelKind and BorderStyle properties to the TRichEditViewer support class, allowing you to enable a flatter interface for a more modern look. See the CodeClasses.iss example script for an example.
- Added new SameStr and SameText support functions.
- Renamed the IsAdminLoggedOn support function to IsAdmin. The old name is still supported, but it is recommended to update your scripts to the new name and the compiler will issue a warning if you don't. Also consider using IsAdminInstallMode instead.
- Removed the TAlphaBitmap support class. Its functionality is now provided directly by TBitmap.
- Fix: On Windows 10 on ARM, the IsWin64 support function now correctly returns True, and the ProcessorArchitecture support function now correctly returns paARM64.
- Inno Setup Preprocessor (ISPP) changes:
- Inno Setup Preprocessor is now always installed.
- Added new predefined variable NewLine.
- Added new IsWin64, SameStr and SameText support functions.
- Added new AllPagesExample.iss example script which shows all the wizard pages Setup may potentially display.
- All documentation referring to the Power Users group has been removed: this group is not special anymore in Windows.
- Other documentation and examples improvements.
- Added official Icelandic translation.
- Delphi compiler updated from Delphi 2009 to Delphi 10.3 Rio. This change increases the size of Setup but decreases development, testing and deployment times. It also makes it easier to compile Inno Setup yourself using the free Delphi Community Edition.
- Minor tweaks.
Contributions via GitHub: Thanks to jogo-, Martin Prikryl, dscharrer, Kleuter, Gavin Lambert, Stefán Örvar Sigmundsson, DRON, Kevin Puetz, and Sherlock Software for their contributions.
Some messages have been added and changed in this version: (View differences in Default.isl).
- New messages: AbortRetryIgnoreSelectAction, AbortRetryIgnoreRetry, AbortRetryIgnoreIgnore, AbortRetryIgnoreCancel, ExistingFileReadOnly2, ExistingFileReadOnlyRetry, ExistingFileReadOnlyKeepExisting, FileAbortRetryIgnoreIgnoreNotRecommended, FileAbortRetryIgnoreSkipNotRecommended, PrivilegesRequiredOverrideTitle, PrivilegesRequiredOverrideInstruction, PrivilegesRequiredOverrideText1, PrivilegesRequiredOverrideText2, PrivilegesRequiredOverrideAllUsers, PrivilegesRequiredOverrideAllUsersRecommended, PrivilegesRequiredOverrideCurrentUser, PrivilegesRequiredOverrideCurrentUserRecommended, UninstallDisplayNameMark, UninstallDisplayNameMarks, UninstallDisplayNameMark32Bit, UninstallDisplayNameMark64Bit, UninstallDisplayNameMarkAllUsers, UninstallDisplayNameCurrentUser.
- Changed message: SelectLanguageLabel.
- Removed messages: EntryAbortRetryIgnore, ExistingFileReadOnly, ExistingFileReadOnlyAbortRetryIgnore, FileAbortRetryIgnore, FileAbortRetryIgnore2, MissingWOW64APIs.
Note: Not all official translations have been updated for these changes at this moment. Demoted the official German, Nepali, Serbian (Cyrillic) and Serbian (Latin) translations to unofficial because of a no longer available maintainer. To send updates yourself, see this post for what needs updating and use this form to send updates (or use GitHub). See the Inno Setup Translations page for more information.
Inno Setup 5.6 Revision History