Inno Setup 6
Revision History
Copyright © 1997-2024 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2024 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!
6.3.0-dev (?)
Support for UTF-8 encoded files improved
- Added support for UTF-8 encoded files without a BOM for .iss script files, .isl messages files, LicenseFile, InfoBeforeFile, InfoAfterFile, and ISPP's #file.
- Compiler IDE changes:
- New script files are now saved as UTF-8 without a BOM by default, bringing the IDE into line with most other text editors. Existing files are still saved as they were until the save encoding is changed manually using the Save Encoding submenu of the File menu.
- Added new UTF-8 with BOM menu item to the Save Encoding submenu of the File menu to save new files with a BOM anyway.
- Pascal Scripting changes:
- Support function LoadStringsFromFile now also supports UTF-8 encoded files without a BOM.
- Added new SaveStringsToUTF8FileWithoutBOM support function.
Support for processor architectures improved
- Setup can now detect support for x64 emulation when running on Arm64 Windows 11, and can be instructed to select 64-bit install mode in that case which was not possible before. See the first example below.
- [Setup] section directives ArchitecturesInstallIn64BitMode and ArchitecturesAllowed now both support boolean expressions. Additionally, extra platform identifiers were added. This enables for example:
; Select 64-bit install mode on any x64-compatible OS (x64 + Arm64 Win11):
ArchitecturesInstallIn64BitMode=x64compatible
; Only allow installation on systems that aren't x64-compatible.
; Useful in a situation where you have separate x86 & x64 installers,
; and don't want users of x64-compatible OSes (x64 + Arm64 Win11)
; erroneously running the x86 installer which would say:
ArchitecturesAllowed=not x64compatible
; Require two arch matches at the same time:
; If an Arm installer installs both Arm64 and Arm32 binaries,
; you technically should ensure that the OS actually supports both:
ArchitecturesAllowed=arm64 and arm32compatible
; Same goes for an x64-compatible installer shipping some 32-bit
; binaries:
ArchitecturesAllowed=x64compatible and x86compatible
; Installing a component that cannot operate in an emulated
; environment, such as an x64 device driver:
ArchitecturesAllowed=x64os
; Allow installation on x64-compatible systems, but deny one of them:
; (Imagine if in the future there were 3 x64-compatible OSes!)
ArchitecturesAllowed=x64compatible and not arm64
; Never select 64-bit install mode but require a 64-bit OS anyway
; (for example, because you're accessing HKLM64):
ArchitecturesInstallIn64BitMode=
ArchitecturesAllowed=win64
The full list of new platform identifiers is: arm32compatible, x64compatible, x64os, x86compatible, x86os, and win64. See the new "Architecture Identifiers" help topic for more details.
All of the above is backward compatible so no changes are needed for your existing scripts. For example, this works unchanged (but see the updated 64BitThreeArch.iss example script for the preferred setting):
ArchitecturesInstallIn64BitMode=x64 arm64
Do note that the x64 identifier is now deprecated and the compiler will issue a warning if you use it anyway. It will substitute x64os, but x64compatible is preferred in most cases and it's simple to adopt it: just replace x64 with x64compatible, and any IsX64 with IsX64Compatible.
The 64-bit example scripts like 64Bit.iss have all been updated to use x64compatible as preferred.
- Certain 64-bit functionality that previously only worked on x64 Windows now works on Arm64 Windows 11 as well. This includes:
- The Permissions parameter of the [Dirs] section when running in 64-bit install mode.
- The Permissions parameter of the [Files] section when running in 64-bit install mode or when the 64bit flag is used.
- The Permissions parameter of the [Registry] section when running in 64-bit install mode or when the value of the Root parameter ends in 64.
- The regtypelib flag of the [Files] section when running in 64-bit install mode or when the 64bit flag is used.
Note that all of the above remains unsupported on Arm64 Windows 10.
- Setup now logs the machine types supported by the system — that is, what types of EXEs can be executed, either natively or via emulation. For example, when running on an Arm64 Windows 11 system, it logs: Machine types supported by system: x86 x64 Arm32 Arm64
- The OnlyOnTheseArchitectures message is not used anymore. Instead, the WindowsVersionNotSupported message is now shown when Setup is started on an architecture that is not allowed by the ArchitecturesAllowed expression. (But please do not remove the message from translation files.)
- Pascal Scripting change: Added new IsArm32Compatible, IsX64Compatible, IsX64OS, IsX86Compatible, and IsX86OS support functions. The IsX64 support function still exists but is now deprecated as explained above. Example testing all platform identifiers:
[Code]
function InitializeSetup: Boolean;
begin
if IsArm32Compatible then Log('IsArm32Compatible');
if IsArm64 then Log('IsArm64');
if IsX64OS then Log('IsX64OS');
if IsX64Compatible then Log('IsX64Compatible');
if IsX86 then Log('IsX86');
if IsX86OS then Log('IsX86OS');
if IsX86Compatible then Log('IsX86Compatible');
if IsWin64 then Log('IsWin64');
Result := True;
end;
Support for #include files improved
- The Compiler IDE now opens up to 20 #include files in tabs, instead of up to 10.
- Tabs for opened #include files can now be closed: Added new Close Tab (Ctrl+F4), Reopen Tab, and Reopen All Tabs menu items to the View menu, also available by right clicking the tab bar.
- The selected and mouseover #include file tabs now show close buttons.
- Added a clickable panel to the Status Bar showing the amount of closed tabs if there are any.
- Removed flicker (especially visible in dark mode) when switching tabs.
Support for Windows Vista, Windows Server 2008 and the Itanium processor architecture removed
- OS requirements change: Windows Vista and Windows Server 2008 are no longer supported. Windows 7 and Windows Server 2008 R2 are now the minimum supported operating systems. [Setup] section directive MinVersion still defaults to 6.1sp1, so by default Setup will still not run versions of Windows 7 and Windows Server 2008 R2 which have not been updated.
- The Itanium processor architecture is no longer supported. The ia64 platform identifier has been removed and instead Setup will always display an error message and exit if it's started on an Itanium system anyway.
- Removed [Icons] section flag foldershortcut which was already ignored except when running on Windows Vista or Windows Server 2008, as folder shortcuts do not expand properly on the Start Menu anymore.
Other changes
- Compiler IDE changes:
- The New Script Wizard now offers an option to import a Windows registry .reg file.
- The New Script Wizard now automatically sets ArchitecturesInstallIn64BitMode and ArchitecturesAllowed to x64compatible if it detects that the chosen main executable file is 64-bit. The default main executable file is now the 64-bit MyProg-x64.exe example executable instead of 32-bit MyProg.exe.
- Added new Generate [Registry] Entries... (Ctrl+Shift+R) menu item to the Tools menu to import a Windows registry .reg file as extra entries to the [Registry] section at the cursor position, or to a new section.
- Added new Generate [Files] Entries... (Ctrl+Shift+I) menu item to the Tools menu to design and insert extra entries to the [Files] section at the cursor position, or to a new section.
- The Generate MsgBox/TaskDialogMsgBox Call... (Ctrl+Shift+M) tool (previously named MsgBox/TaskDialogMsgBox Designer) now respects the tab width and tab character settings, indents the generated Pascal script one extra level, and warns if the cursor position is not in the [Code] section.
- Added icons to the main menu items.
- Added new [Setup] section directive UninstallLogging, which defaults to no. If set to yes, the uninstaller will always create a log file if it is launched from the Add/Remove Programs Control Panel applet. Equivalent to passing /LOG on the command line.
- Added new [Files] section flags signcheck. Instructs the compiler check the original source files for a digital signature before storing them.
- During startup Setup would always ask Windows to create any missing {usercf}, {userpf}, and {usersavedgames} folders. It no longer does until the script asks for the folder. Note that scripts running in administrative install mode should not do this because it violates the used user areas warning.
- Added support for IIS group users identifiers (iisiusrs) for use in Permissions parameters.
- Pascal Scripting change: Type TShellFolderID was removed because it wasn't used by any support function.
- Added modern icons to the MyProg example executables, now compiled with Visual Studio 2022.
- Added official Korean translation.
- Inno Setup is now built using Delphi 11.3 Alexandria instead of Delphi 10.3 Rio.
- Inno Setup's Delphi projects have been recreated as new clean projects and have been added to a Projects\Projects.groupproj project group. This makes it a lot easier to get started with working with the Inno Setup source code and making contributions, even with the free Delphi Community Edition.
- Minor tweaks and documentation improvements.
Contributions via GitHub: Thanks to Achim Stuy, ser163, Jens Geyer, and Sergii Leonov for their contributions.
Inno Setup 6.2 Revision History