Inno Setup Compiler Changelog

What's new in Inno Setup Compiler 6.2.2

Feb 15, 2023
  • Graphics modernized, including the automatic use of higher quality images (which were not available before) on higher DPI settings.

New in Inno Setup Compiler 6.2.1 (Apr 15, 2022)

  • Changes to further help protect against potential DLL preloading attacks when running installers or uninstallers under the SYSTEM account, contributed by Johannes Schindelin from the Git for Windows team.
  • Fixed a cosmetic issue if the icon file specified by the [Setup] section directive SetupIconFile contains more than 13 icons. Thanks to Wilenty and Martin Prikryl for the initial investigation.

New in Inno Setup Compiler 6.2.0 (Jun 3, 2021)

  • Graphics modernized:
  • Updated all Compiler IDE's toolbar icons and the wizard images used by the Compiler IDE's New Script Wizard wizard.
  • Updated the default application icon used by Setup and Uninstall if [Setup] section directive SetupIconFile is not set. To use the old icon again set SetupIconFile to compiler:SetupClassicIcon.ico.
  • [Setup] section directives WizardImageFile and WizardSmallImageFile now default to a blank value which makes Setup use new built-in wizard images. To use the old wizard images again set WizardImageFile and WizardSmallImageFile to compiler:WizClassicImage.bmp and compiler:WizClassicSmallImage.bmp respectively.
  • Updated Uninstall's default small wizard image if [Setup] section directive SetupIconFile is not set. Before it would use Setup's default application icon in this case.
  • Updated the folder, group, and stop icons used by Setup's Select Destination Location, Select Start Menu Folder, and Preparing to Install wizard pages.
  • Updated the disk icon used by Setup's Setup Needs the Next Disk form.
  • Pascal Scripting change: Added new InitializeBitmapImageFromIcon support function.
  • All these icon and images updates include the automatic use of higher quality versions (which were not available before) on higher DPI settings. This includes new automatic use of higher quality icons for the icon on Setup's Select Setup Language form and Uninstall's small wizard image if SetupIconFile is set.
  • Other changes:
  • Links displayed by [Setup] section directives LicenseFile, InfoBeforeFile and InfoAfterFile are now executed as the original user if possible when clicked.
  • Added new [Setup] section directives MissingMessagesWarning and NotRecognizedMessagesWarning to disable warnings about messages missing or not recognized for a language.
  • /LOG: Now logs more uninstaller actions.
  • The {localappdata} constant can now correctly trigger a used user areas warning.
  • Compiler IDE change: Fix: Autocomplete support for event functions listed some procedures as functions.
  • Pascal Scripting changes:
  • Added new CreateOutputMarqueeProgressPage support function to show marquee progress to the user. See the AllPagesExample.iss example script for an example.
  • Added new ItemFontStyle and SubItemFontStyle properties to the TNewCheckListBox support class. See the CodeClasses.iss example script for an example.
  • Added new IsMsiProductInstalled and StrToVersion support functions.
  • Added new AbortedByUser property to the TDownloadWizardPage support class.
  • Fix: CreateDownloadPage's progress bar now supports files larger than 2 GB.
  • Support functions ParamCount and ParamStr now exclude undocumented internal parameters used by Setup and Uninstall.
  • The built-in download support now allows the download of files for which the server does not specify the file size and its hash checking is no longer case sensitive.
  • ISPP change: Added new StrToVersion support function.
  • Added official Bulgarian translation.
  • Various documentation improvements.
  • Minor tweaks.

New in Inno Setup Compiler 6.1.2 (Nov 15, 2020)

  • Compiler IDE change: Added new Print... (Ctrl+P) menu item to the File menu.
  • Minor tweaks.

New in Inno Setup Compiler 6.0.5 (Jul 6, 2020)

  • 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.

New in Inno Setup Compiler 6.0.4 (Mar 13, 2020)

  • [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.

New in Inno Setup Compiler 6.0.3 (Oct 11, 2019)

  • /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.

New in Inno Setup Compiler 6.0.2 (Apr 27, 2019)

  • 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.

New in Inno Setup Compiler 5.6.1 (Jun 14, 2018)

  • /LOG: Now logs some additional information about uninstall info saving.
  • The {sendto} constant has been renamed to {usersendto} and now can correctly trigger a used user areas warning. It still returns the same directory: the path to the current user's Send To folder. (There is no common Send To folder.)
  • Minor fixes to the registry entries logging and improved syntax highlighting introduced by the previous version.
  • Minor tweaks.

New in Inno Setup Compiler 5.5.9 (Apr 6, 2016)

  • To further help protect installers against potential DLL preloading attacks, Setup/Uninstall now calls SetDefaultDllDirectories if available to remove the application directory from the DLL search order. If SetDefaultDllDirectories is not available or cannot be called, it now additionally preloads a set of system DLLs known to be loaded unsafely by older or unpatched versions of Windows.
  • Change in default behavior: the OutputBaseFileName [Setup] section directive now defaults to mysetup instead of setup. Setting it back to setup is not recommended: all executables named "setup.exe" are shimmed by Windows application compatibility to load additional DLLs, such as version.dll. These DLLs are loaded unsafely by Windows and can be hijacked. If you do so anyway, the compiler will issue a warning.
  • Added new [Files] section flags: sign and signonce. Instructs the compiler to digitally sign the original source files before storing them. Ignored if [Setup] section directive SignTool is not set. Inno Setup's own compiler files are now also signed.
  • [Setup] section directive LZMADictionarySize now allows the LZMA dictionary size to be increased up to 1 GB from the previous maximum of 256 MB. Review the memory requirements listed in the Compression topic before using!
  • Improved the "auto-retry" feature of the [Files] section: it now also retries if MoveFile failed even if the preceding DeleteFile succeeded. Additionally, if MoveFile keeps failing it will now register the file to be replaced on restart if the restartreplace [Files] section flag is used instead of displaying an error message.
  • The value of the AppVersion directive is now not only used to set the MajorVersion and MinorVersion values in the Uninstall registry key when possible but also used to set the VersionMajor and VersionMinor values as required by newer versions of the Windows App Certification Kit.
  • Unicode Inno Setup: Added official Armenian translation.
  • Minor tweaks.
  • Inno Setup Preprocessor (ISPP) changes:
  • Added new function RemoveFileExt.
  • Documented predefined variable ISPPCC_INVOKED.
  • Console-mode compiler (ISCC) change: Added new command line parameter /J. Can be used to #include additional files.

New in Inno Setup Compiler 5.5.8 (Jan 13, 2016)

  • The [Setup] section many now list multiple SignTool directives which will be executed in order of appearance. This can be used to dual sign (SHA1 & SHA256) Setup and Uninstall. This requires a recent signtool.exe version. Inno Setup's own installer is now also dual signed. See the help file for a dual sign example. Without dual signing Windows will no longer trust any of your new installers if they are downloaded.
  • The console-mode compiler (ISCC) now accepts multiple /S command line parameters (to specify a Sign Tool) instead of ignoring all but the last.

New in Inno Setup Compiler 5.5.7 (Jan 13, 2016)

  • The Compiler IDE's New Script Wizard now offers to create a shortcut to the main executable in the common Start Menu Programs folder instead of creating a new Start Menu folder especially for the application. This option is enabled by default and is recommended by Microsoft unless you install a suite of applications rather than a single application.
  • The WizardImageFile and WizardSmallImageFile [Setup] section directives now support 32 bit bitmap files with an alpha channel. Use the new WizardImageAlphaFormat [Setup] section directive to specify if the bitmap file has its red, green and blue channel values premultiplied with the alpha channel value or not.
  • The WizardImageBackColor [Setup] section directive is now deprecated and ignored, just like the similar WizardSmallImageBackColor directive already was. Any unused space around the wizard image is now filled with the standard window color (usually white).
  • [Setup] section directive CloseApplications can now be set to force. If it is, Setup will force close when closing applications. Use with care since this may cause the user to lose unsaved work.
  • Added new command line parameters supported by Setup: /FORCECLOSEAPPLICATIONS and /NOFORCECLOSEAPPLICATIONS. These can be used to override the CloseApplications directive.
  • The Attribs parameter of a [Files] or [Dir] entry may now also include notcontentindexed to specify that the file or directory is not to be indexed by the content indexing service.
  • Unicode [Code] based on RemObjects Pascal Script Git commit bfc1255636eb959f102d0279721b05ba85fbe7da.
  • Changes in default behavior:
  • As recommended by Microsoft's desktop applications guideline, DisableWelcomePage now defaults to yes. Additionally DisableDirPage and DisableProgramGroupPage now default to auto. The defaults in all previous versions were no.
  • The Setup and Uninstall programs are now marked as DEP and ASLR compatible. This can be disabled by setting the new DEPCompatible and ASLRCompatible [Setup] section directives to no. Doing this for DEP compatibility might be needed if you're using a buggy third-party DLL from [Code], like isxdl.dll.
  • Pascal Scripting changes:
  • Function RegQueryBinaryValue can now be used to query any type of registry value and not just REG_BINARY-type values.
  • Class TBitmapImage now supports 32 bit bitmap files with an alpha channel. Make sure to set the Bitmap.AlphaFormat property before loading the bitmap file.
  • Added new functions GetOpenFileNameMulti and SelectDisk.
  • Added C# version of the MyDll.dll example DLL showing how to call .NET assemblies from [Code] without requiring COM or other DLLs. Uses Unmanaged Exports by Robert Giesecke.

New in Inno Setup Compiler 5.5.6 (Jul 16, 2015)

  • Added the Windows 10 "compatibility" section to the various manifest resources used by Inno Setup.
  • Added new [Setup] section directive: SignToolRetryCount, which defaults to 2. Specifies the number of times the Setup Compiler should automatically retry digital signing on any errors.
  • Added new [Setup] section directive: SetupMutex. Can be used to prevent Setup from running while Setup is already running.
  • Fix: Console-mode compiler (ISCC) change: Renamed /DO and /EO command line parameters to /O- and /O+ to avoid possible conflicts with /D.
  • Pascal Scripting change: Unicode Inno Setup: Added new functions VarIsClear and UnpinShellLink.
  • Inno Setup Preprocessor (ISPP) change: Added new function ForceDirectories.
  • Unicode [Code] based on RemObjects Pascal Script Git commit db0d6f521113a31b34a76aeefd79fb148a9c4bfd.
  • Various documentation improvements.
  • Minor tweaks.

New in Inno Setup Compiler 5.5.5 (Jul 9, 2014)

  • /LOG: Now logs INI entries. Also improved logging of icon entries.
  • Added new [Setup] section directive: Output, which defaults to yes. If set to no the Setup Compiler will only check the script for errors and skip creating setup files.
  • Added official Scottish Gaelic and Turkish translations.
  • Fix: [Setup] section directive UsePreviousLanguage was not working when Setup was running in 64-bit mode.
  • Unicode [Code] based on RemObjects Pascal Script Git commit 97eefc260b41ba51328d95b4ed43669f38655720.
  • Various documentation improvements.
  • Console-mode compiler (ISCC) changes:
  • Added new command line parameters /DO and /EO. These can be used to disable or enable output, overriding the Output directive.
  • Added new command line parameter /Qp. Can be used to enable quiet compile while still displaying progress.
  • ISCC now automatically specifies any Sign Tools configured using the IDE, eliminating the need to specify these using the /S command line parameter.
  • Pascal Scripting changes:
  • Added new function CurrentSourceFileName, which returns the source file name of the [Files] entry that is currently being processed. The returned name may include constants. Note: Do not attempt to call this function from outside a Check, BeforeInstall or AfterInstall event function belonging to a [Files] entry with the external flag.
  • The already-existing StrToFloat and FloatToStr functions are now documented.
  • Strings and numbers are now highlighted.
  • Unicode Inno Setup: Added new class TStringStream.
  • Inno Setup Preprocessor (ISPP) changes:
  • Added function DeleteFileNow.
  • Added 64-bit support to function ReadReg.

New in Inno Setup Compiler 5.5.4 (Oct 14, 2013)

  • Added the Windows 8.1 "compatibility" section to the various manifest resources used by Inno Setup. This enables any check for the operating system version to get the real version number (6.3) instead of getting the same version number as it did in Windows 8 (6.2).
  • Compiler IDE: Added new option: Show line numbers in gutter (default: off).
  • Pascal Scripting changes:
  • Added new event function CurInstallProgressChanged, which you can use to monitor progress while Setup is extracting files, creating shortcuts, creating INI entries, and creating registry entries. See the help file and the CodeExample1.iss example script for more information. Contributed by TLama via GitHub.
  • WizardForm.BeveledLabel visibility is now automatically handled even if its caption was set from [Code].
  • Unicode [Code] based on RemObjects Pascal Script Git commit 538905910852bcbeef646f26592a973d15d3d5ec.
  • Minor tweaks.

New in Inno Setup Compiler 5.5.3 (Jan 31, 2013)

  • Windows 8 change: [Icons] section flag excludefromshowinnewinstall now additionally prevents the new shortcut from being automatically pinned the Start screen.
  • Added new command line parameters supported by Setup: /HELP and /?. Cause Setup to display the list of accepted command line parameters in a message box, exiting with exit code 0 afterwards. Ignored if the UseSetupLdr [Setup] section directive was set to no.
  • Added new command line parameter supported by Inno Setup's own installer: /PORTABLE=1. Causes Inno Setup's own installer to not create an uninstaller nor an entry in the Add/Remove Programs Control Panel applet. Also supported by QuickStart Pack's installer.
  • Added workaround for bug in 64-bit Windows which in some cases would cause Windows to display an error message when a user tries to change the icon of an installed shortcut.
  • Updated the compiler and document icons, created by Motaz.
  • Restart Manager: If Setup is not running silently and is unable to close all applications using files that need to be updated, it will now ask the user to abort, retry, or ignore. Previously it always ignored.
  • Added official Corsican and Nepali translations. The Nepali translation requires Unicode Inno Setup.
  • If the Flags parameter of a [Files] entry includes isreadme and the entry also has a BeforeInstall or AfterInstall parameter, the BeforeInstall or AfterInstall functions will now only be called when the file is installed and no longer a second time when the file is viewed after the installation has completed.
  • [Setup] section directive VersionInfoProductTextVersion, which sets the textual product version value, is now truncated at 50 characters instead of 20.
  • The Inno Setup help file source code has been moved into the main Inno Setup source code repository.
  • Fix: [Setup] section directive CloseApplicationsFilter was partially case sensitive.
  • Unicode [Code] based on RemObjects Pascal Script Git commit 31abd2925837d85a6965b5325e8fb7835ca73ea8.
  • QuickStart Pack: No longer offers to download and install InnoIDE (which is no longer maintained by its author) unless /ALLOWINNOIDE=1 is specified on the command line. If you're still using InnoIDE it is recommended you switch to Inno Script Studio (which QuickStart pack can download and install).
  • Minor tweaks.
  • A message has been added in this version:
  • New message: ErrorCloseApplications.
  • Inno Setup Preprocessor (ISPP) changes:
  • Added directive #redim to increase or decrease the dimension of an existing array variable.
  • Added function DimOf. Returns the dimension of the specified identifier.
  • Pascal Scripting changes:
  • Added new function: ExtractTemporaryFiles. This function is like ExtractTemporaryFile but supports wildcards and doesn't ignore directory information.
  • When ExtractTemporaryFile or ExtractTemporaryFiles extracts a file, this is now logged.
  • Unicode Inno Setup: Now has an Int64 type, supported by IntToStr. Also added new StrToInt64, StrToInt64Def, and GetSpaceOnDisk64 support functions.

New in Inno Setup Compiler 5.5.2 (Oct 9, 2012)

  • Added the Windows 8 "compatibility" section to the various manifest resources used by Inno Setup.
  • Added constants {userpf} and {usercf}. Only Windows 7 and later supports {userpf} and {usercf}; if used on previous Windows versions, they will translate to the same directories as {localappdata}\Programs and {localappdata}\Programs\Common.
  • Pascal Scripting: Added new RegisterExtraCloseApplicationsResources event function and also added new RegisterExtraCloseApplicationsResource support function. These functions can be used to register extra files which Setup should check for being in-use.
  • Added new command line parameters supported by Setup: /CLOSEAPPLICATIONS and /RESTARTAPPLICATIONS. These can be used to override the CloseApplications and RestartApplications directives.
  • Decreased Unicode Setup.e32's and SetupLdr.e32's size. Contributed by Andreas Hausladen via GitHub. (This reduced the size of Unicode Inno Setup's own installer by approximately 40 KB.)
  • Unicode [Code] based on RemObjects Pascal Script Git commit 52291ffbfc14f3cf1a445f3e88c6902e13fbdf78.
  • Minor tweaks.

New in Inno Setup Compiler 5.5.1 (Jul 10, 2012)

  • Added official Greek translation.
  • Updated the official Catalan, Czech, Danish, Finnish, French (Standard), German, Hebrew, Hungarian, Italian, Japanese, Norwegian (Bokmal), Polish, Portuguese (Brazil), Portuguese (Portugal), Russian, Serbian (Cyrillic), Serbian (Latin), Slovenian, Spanish, and Ukrainian translations for the changes introduced by the previous version.
  • Demoted the official Basque and Slovak translations to unofficial because of a lack of updates by the maintainers. 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.
  • Fix: The Preparing to Install wizard page's detection of files that need to be updated but are in use or queued (by some other installation) to be replaced or deleted on the next restart did not work for [Files] and [InstallDelete] entries with a Components or Tasks parameter.
  • Minor tweaks.

New in Inno Setup Compiler 5.5.0 (May 30, 2012)

  • Non-Unicode Inno Setup OS requirements change: Windows 95, 98, Me, and NT 4.0 are no longer supported. Like the Unicode version, Windows 2000 is now the minimum supported operating system.
  • The MinVersion and OnlyBelowVersion directives and parameters now require only a single version number. For example: MinVersion=5.1. For compatibility with previous versions of Inno Setup, separate Windows 95/98/Me and Windows NT version numbers may still be specified, but these aren't used anymore.
  • On Windows Vista and newer, Setup now supports the Windows Restart Manager API to close and restart applications using files that need to be updated:
  • Added new [Setup] section directive: CloseApplications, which defaults to yes. If set to yes and Setup is not running silently, Setup will now pause on the Preparing to Install wizard page if it detects applications using files that need to be updated by the [Files] or [InstallDelete] section, showing the applications and asking the user if Setup should automatically close the applications and restart them after the installation has completed. If set to yes and Setup is running silently, Setup will always close and restart such applications, unless told not to via the command line (see below).
  • Added new [Setup] section directive: CloseApplicationsFilter, which defaults to *.exe,*.dll,*.chm. Controls which files Setup will check for being in use. Setting this to *.* can provide better checking at the expense of speed.
  • Added new [Setup] section directive: RestartApplications, which defaults to yes. Note: for Setup to be able to restart an application after the installation has completed, the application needs to be using the Windows RegisterApplicationRestart API function.
  • Added new command line parameters supported by Setup: /NOCLOSEAPPLICATIONS and /NORESTARTAPPLICATIONS. These can be used to overide the new CloseApplications and RestartApplications directives.
  • Added new [Code] support function: RmSessionStarted.
  • TWizardForm: Added new PreparingMemo property.
  • The Preparing to Install wizard page now also checks if one or more files specified in the [InstallDelete] section were queued (by some other installation) to be replaced or deleted on the next restart, making Setup stop on the page if it does. Previously it only checked files specified in the [Files] section.
  • Setup now additionally hides the Back and Next buttons while the PrepareToInstall [Code] event function is running. Previously it only disabled itself.
  • Added new [Setup] section directive: AllowNetworkDrive, which defaults to yes. If set to no, the user will not be allowed to enter a network drive on the Select Destination Location page of the wizard. Note: to fully disallow installation to network locations, you must also set AllowUNCPath to no.
  • Windows 7 changes:
  • Added new [Icons] section flag: preventpinning. Prevents a Start menu entry from being pinnable to Taskbar or the Start Menu on Windows 7 (or later). This also makes the entry ineligible for inclusion in the Start menu's Most Frequently Used (MFU) list. Ignored on earlier Windows versions.
  • Windows 7 SP1 fixed the issue with EstimatedSize values in the Uninstall registry key and on Windows 7 SP1 or newer Setup now sets EstimatedSize even for sizes of 4GB or more.
  • Improved the "auto-retry" feature of the [Files] section: it now automatically retries even if the restartreplace [Files] section flag is used.
  • Pascal Scripting: Changed the InstallOnThisVersion support function to return a Boolean value. If an invalid version string is passed, an exception will be raised.
  • Added 128x128 and 256x256 sizes to the compiler and document icons,
  • Some messages have been added and removed in this version:
  • New messages: ApplicationsFound, ApplicationsFound2, CannotInstallToNetworkDrive, CannotInstallToUNCPath, CloseApplications, DontCloseApplications, InvalidParameter, SetupAlreadyRunning, ShutdownBlockReasonInstallingApp, ShutdownBlockReasonUninstallingApp, StatusClosingApplications, StatusRestartingApplications, WindowsServicePackRequired, WindowsVersionNotSupported.
  • New custom messages: AutoStartProgramGroupDescription, AutoStartProgram, AddonHostProgramNotFound.
  • Removed messages: ToUNCPathname.
  • Inno Setup Preprocessor (ISPP) changes:
  • Added function DirExists.
  • The ISPP source code has been moved into the main Inno Setup source code repository.

New in Inno Setup Compiler 5.4.2 (Mar 17, 2011)

  • Windows 7 change:
  • Added new [Icons] section flag: excludefromshowinnewinstall. Prevents a Start menu entry for a newly installed application shortcut from receiving a highlight on Windows 7 (or later). Ignored on earlier Windows versions.
  • Compiler IDE change:
  • Changed shortcut for Edit | Complete Word to Alt+Right (but still recognize Ctrl+Space). Reportedly, Ctrl+Space conflicts with the Chinese IME.
  • Fixes:
  • Inno Setup Preprocessor: #include handling of '.\' and '..\' now treats such filenames as relative to the directory containing the current file, not to the current directory (which is undefined).
  • On the 5.4.1 Unicode compiler, trying to build a multi-language installer while running under a DBCS code page could unexpectedly result in "Illegal null character" errors.
  • On Unicode, string-type parameters passed to BeforeInstall and AfterInstall functions were being converted to ANSI.

New in Inno Setup Compiler 5.4.1 (Feb 9, 2011)

  • Inno Setup Preprocessor (ISPP) changes:
  • ISPP is now an official part of Inno Setup and is included in the standard Inno Setup installer instead of only being included in the QuickStart Pack installer.
  • It is now possible to enable ISPP preprocessing on .isl files by adding a line saying #preproc ispp at the top of the .isl file.
  • With the exception of Exec, ReadIni, and WriteIni, all ISPP functions that take filenames have been changed to interpret the filenames as relative to SourcePath instead of the current directory. Additionally, these functions, the #include directive, and the #file directive now support prefix expansion (e.g. 'compiler:') in filenames.
  • The #include directive no longer searches the current directory.
  • Builtins.iss has been renamed to ISPPBuiltins.iss.
  • The Compiler IDE no longer displays a separate ISPP version number in its title bar.
  • Compiler IDE changes:
  • The Edit | Replace | Replace All command now actually replaces all occurrences, instead of doing a Delphi-style "From Cursor" replacement. Also it now counts all replacements as a single undo action and shows how many occurrences were replaced.
  • Unicode change: Added a new File | Save Encoding submenu. It now defaults to preserving the UTF-8 BOM of existing files, even if the UTF-8 encoding isn't really needed.
  • Unicode change: Added support for Unicode characters in DLL filenames (not specified directly in the script, but returned by constants like {app}). This fixes the "Cannot Import" error seen with for example the CodeDll.iss example script when uninstalling from an {app} path containing non-ANSI characters.
  • Two new Setup exit codes related to the Preparing to Install stage were added. See the help file for more information.
  • Minor tweaks.

New in Inno Setup Compiler 5.4.0 (Feb 9, 2011)

  • Compiler IDE changes:
  • The editor component has been changed from SynEdit to Scintilla.
  • Autocompletion support has been added to all sections except for [Messages], [CustomMessages], and [Code].
  • Brace highlighting has been added to all sections.
  • Syntax errors are now underlined during editing. (Support for the [Code] section is limited.)
  • Constants are now highlighted.
  • Variable-pitch fonts may now be selected as the editor font.
  • ISPP inline directives ({#...}) are now consistently highlighted in all contexts.
  • Zooming is now supported.
  • Added new options: Word wrap (default: off), Auto indent mode (default: on), Show indentation guides (default: off), Invoke autocomplete automatically (default: on), Underline syntax errors (default: on), and Use tab character (default: off).
  • Setup now instructs edit controls which are used to input a file or folder name to use AutoComplete to help complete file system paths.
  • On disk space checks, Setup now queries the nearest volume mount point rather than the root.
  • The default directory and Start Menu folder names specified via the /DIR=, /GROUP=, and /LOADINF= command line parameters now may include an "expand:" prefix which instructs Setup to expand any constants in the name. For example: /DIR="expand:{pf}\My Program".
  • Pascal Scripting changes:
  • TNewProgressBar: Added new Style and State properties. See the CodeClasses.iss example script for an example.
  • TBitmapImage: Added new OnClick and OnDblClick properties. See the CodeClasses.iss example script for an example.
  • Dropped Itanium-specific 64-bit support for the [Files] section's regtypelib flag and the [Registry] section's Permissions parameter. These features depended on an Itanium-specific "helper" binary, which we no longer have the ability to test or build. (x64 support for these features is unaffected.)
  • Updated bzip2 library to version 1.0.6.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.11 (Feb 9, 2011)

  • QuickStart Pack: Now offers to download and install InnoIDE instead of ISTool. InnoIDE is an easy to use Inno Setup Script editor by Graham Murt and meant as a replacement of the standard Compiler IDE that comes with Inno Setup. Using InnoIDE is especially recommended for new users. Note: unlike ISTool, InnoIDE supports Unicode scripts.
  • Unicode changes:
  • Previously, if a Unicode installer included translations for both Traditional Chinese and Simplified Chinese using the language IDs $0404 (Taiwan) and $0804 (PRC), a user running under another Traditional Chinese language ID—such as $0C04 (Hong Kong)—could have incorrectly received the Simplified Chinese translation by default if it was listed first in the script's [Languages] section. Now, like the ANSI version of Setup, Traditional Chinese and Simplified Chinese are treated as completely separate languages. Thus, provided other options are available, Simplified Chinese will not be considered for selection as the default language on Traditional Chinese systems, and vice versa.
  • Compiler IDE editor updated to the latest UniSynEdit version. This fixes the extra empty line appearing at the end of scripts when first saved.
  • Ctrl+V/Esc/etc. are no longer intercepted by the Compiler IDE's main window while the Find dialog has the focus.
  • Based on RemObjects Pascal Script SVN code revision 233. This fixes GetExceptionMessage always returning "(There is no current exception)" on Unicode.
  • Compiler IDE: Added new Build | Open Output Folder command.
  • In certain cases, applications started via postinstall nowait [Run] entries did not come to the foreground (top of the Z-order) as expected. This could occur if Setup exited before the spawned process(es) were able to initialize, causing Windows to bring the window that was underneath Setup in the Z-order to the foreground instead. Now, when postinstall nowait [Run] entries are processed, Setup will wait briefly (up to one second) before exiting for another process to bump Setup from the foreground.
  • To help protect applications against potential DLL preloading attacks, Setup now always specifies a working directory on shortcuts it creates. If a WorkingDir parameter is not specified or is blank, Setup will try to extract a directory name from the Filename parameter. If for some reason that fails, the working directory will be set to {sys}.
  • To help protect installers against potential DLL/EXE preloading attacks, Setup/Uninstall now calls SetDllDirectory to remove the current directory from the DLL search order, and SetSearchPathMode to prevent SearchPath and CreateProcess from searching the current directory before system directories.
  • If the Filename parameter of a [Run]/[UninstallRun] entry or Exec/ShellExec call does not include a path, and a WorkingDir value is not provided, Setup/Uninstall will now specify a known-safe default (currently {sys}) for the process's initial current directory, instead of allowing the process to inherit Setup/Uninstall's current directory. You should not rely on this behavior, however; it is best to always specify a path in the Filename parameter.
  • When an Open or Save common dialog is dismissed, the current directory is now restored to its original value.
  • Updated bzip2 library to version 1.0.5.
  • QuickStart Pack: Any ISPP function that uses the system's DLL search path such as GetFileVersion will no longer search the current directory.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.10 (Feb 9, 2011)

  • Added .NET Framework 4.0 support:
  • Added constants {dotnet40}, {dotnet4032}, and {dotnet4064}. An exception will be raised if an attempt is made to expand these constants on a system with no .NET Framework version 4.0 present.
  • [Files] section flag gacinstall can now be used on .NET Framework 4.0 assemblies too.
  • Windows 7 changes:
  • [Icons] section flag foldershortcut is now ignored when running on Windows 7 (or later), as folder shortcuts do not expand properly on the Start Menu anymore.
  • [Setup] section directive changes:
  • When SignedUninstaller is set to yes, any temporary self-copies used by Setup are now digitally signed too.
  • Uninstallable may now be set to a boolean expression, which may contain calls to check functions. For example: Uninstallable=not IsTaskSelected('portablemode'). See the Uninstallable documentation for details.
  • AppVerName is no longer required if AppVersion is specified. It will now effectively default to: {cm:NameAndVersion,[AppName],[AppVersion]}. The Compiler IDE's New Script Wizard now also asks for an AppVersion instead of an AppVerName.
  • If a text VersionInfo* directive is set to an empty string (as opposed to not being specified), then the version info field is really set to an empty string now, instead of forcing a default value.
  • VersionInfoProductTextVersion now defaults to VersionInfoProductVersion if set, else AppVersion if AppVersion is set and does not include constants, else VersionInfoTextVersion.
  • Unicode Inno Setup: An issue with the taskbar button re-appearing on /VERYSILENT installs has been fixed.
  • Unicode [Code] based on RemObjects Pascal Script SVN code revision 228.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.9 (Feb 9, 2011)

  • For better appearance on Windows 7 and Vista when ClearType is enabled, Tahoma is the new default font used by Setup and Uninstall. A new [Setup] section directive DefaultDialogFontName has also been added to make it easy to override the default dialog font for all languages that do not have a custom DialogFontName setting. If you would like to revert to the dialog font used in previous versions of Inno Setup (Microsoft Sans Serif if available, else MS Sans Serif), set DefaultDialogFontName to an empty string (DefaultDialogFontName=).
  • Added new [Setup] section directive: DisableWelcomePage to hide the Welcome wizard page. Doing so is recommended by the Aero wizard guidelines. Additionally, the ShouldSkipPage event function is now also called for wpWelcome.
  • When Setup is not running silently, the Ready To Install wizard page now ignores attempts to skip it when no other wizard page before it has been shown yet.
  • Added LZMA2 compression support:
  • Updated the LZMA SDK compression code to version 9.10 which adds support for LZMA2 compression. LZMA2 is a modified version of LZMA that offers a better compression ratio for uncompressible data (random data expands about 0.005%, compared to 1.35% with original LZMA), and optionally can compress multiple parts of large files in parallel, greatly increasing compression speed but with a possible reduction in compression ratio. LZMA2 compression may be activated by setting the Compression [Setup] section directive to lzma2, and lzma2 is now also the default value.
  • Added various new [Setup] section directives with names that start with LZMA to fine-tune LZMA and LZMA2 compression parameters, including LZMADictionarySize which allows the LZMA dictionary size to be increased up to 256 MB from the previous maximum of 64 MB. Review the memory requirements listed in the Compression topic before using.
  • Tweaked the JMP/CALL instruction optimization algorithm for slightly better compression of executable files. (On Inno Setup's own installer, this saved about 2 KB.)
  • Improved compression of x64 executable files: just like for x86 executable files, JMP/CALL instruction optimization is now performed for x64 executable files. On average, this will reduce the compressed size of x64 executable files by 2-3%.
  • [Setup] section directive DiskSliceSize can now be set to max, and max is now also the default value.
  • Windows 7 change: The Compiler IDE is now pinnable. Also, files that are opened via the Welcome dialog, MRU list, and drag & drop now get added to the Jump List.
  • Windows 7 and Vista changes:
  • Before deleting a pinned shortcut, Uninstall now automatically removes it from the current user's Start menu pinned list and on Windows 7 also from the taskbar.
  • Changed the icon that is shown on Select Start Menu Folder wizard page. Previously, it used the same icon as the preceding Select Destination Location page, but that was never really the intention.
  • When Setup and Uninstall respawn for elevation, any SUBST'ed drives in the EXE filename are now expanded before the respawn, since the elevated user will not retain the original user's SUBST mappings. Fixes error seen when starting Setup from a SUBST'ed drive.
  • Setup now uses the SHA-1 algorithm instead of MD5 for file checksums and various internally-used hashes.
  • Pascal Scripting: Added support functions GetSHA1OfString, GetSHA1OfUnicodeString, and GetSHA1OfFile.
  • QuickStart Pack: Added ISPP functions GetSHA1OfString, GetSHA1OfUnicodeString, and GetSHA1OfFile.
  • [Icons] section parameter AppUserModelID is now also used on Windows Server 2008 R2.
  • In Setup's version info text fields, "(C)" is now automatically replaced with real copyright symbols ("©").
  • Unicode Inno Setup: Added workaround for upstream Delphi bug that could cause Setup (versions 5.3.6 to 5.3.8) to display a "Stream read error" error message at startup on Windows 2000 systems that did not have Service Pack 4 installed.
  • Compiler IDE change: the Tools | Configure Sign Tools... dialog now allows editing of existing Sign Tools.
  • The uninstall program's version is now 51.(10)52.0.0.
  • Minor tweaks

New in Inno Setup Compiler 5.3.8 (Feb 9, 2011)

  • Added new [Setup] section directive: UsePreviousLanguage. When this directive is yes, the default, at startup Setup will look in the registry to see if the same application is already installed, and if so, it will use the language of the previous installation as the default language selected in the list of available languages on the Select Language dialog. Note that this directive does not change the language used by the Select Language dialog itself because it cannot assume that the current user understands the same languages as the previous user. UsePreviousLanguage must be set to no when AppId includes constants.
  • On Windows Vista and newer, Uninstall no longer blocks system shutdown until the uninstallation has actually started. This should make the Windows 7 Logo Kit (which wrongly tests any .exe in the application directory including the uninstaller) happy when it tries to shutdown an Uninstall sitting on its confirmation prompt.
  • On Windows NT and newer, PrivilegesRequired=lowest now has an additional effect: the uninstall info root key will always be HKEY_CURRENT_USER, and the "common" forms of the Shell Folder constants are always mapped to the "user" forms, even if administrative privileges are available.
  • [Setup] section directive CreateUninstallRegKey may now be set to a boolean expression, which may contain calls to check functions. For example: CreateUninstallRegKey=not IsTaskSelected('portablemode'). See the CreateUninstallRegKey documentation for details.
  • The Preparing to Install wizard page now offers the user an option to directly reboot instead of just saying a reboot is needed. To trigger this option from a PrepareToInstall event function set its new NeedsRestart parameter to True.
  • In the MinVersion and OnlyBelowVersion directives and parameters, .x is now treated the same as .0x when a major version of 5 or higher is specified. Thus, you now have the option of using either 5.01 or 5.1 to specify Windows XP. However, to maintain compatibility with existing scripts, 4.x will still be interpreted as 4.x0.
  • Pascal Scripting: Added new PageIndexFromID support function.
  • The online documentation available at http://www.jrsoftware.org/ishelp/ now has an index and is searchable.
  • QuickStart Pack changes:
  • Added ISPP function StringChange.
  • The ISPP documentation is now available online at http://www.jrsoftware.org/ispphelp/.
  • The uninstall program's version is now 51.(10)51.0.0.
  • Minor tweaks

New in Inno Setup Compiler 5.3.7 (Feb 9, 2011)

  • The PrivilegesRequired [Setup] section directive can now be set to lowest. On Windows Vista and later this instructs Setup to not request elevated rights (via a User Account Control dialog) even if it was started by a member of the Administrators group. Do not use this setting unless you are sure your installation will run successfully on unprivileged accounts. If you were using PrivilegesRequired=none before, it is recommended to switch to PrivilegesRequired=lowest.
  • Added new Compiler IDE option: Autosave before compiling.
  • [Tasks] section flags checkedonce and unchecked may now be combined. This combination specifies the task to be unchecked by default on the first install, and always unchecked by default on subsequent installs as well.
  • A problem with "Not Implemented" errors when Setup or Uninstall was run on Windows 7 under special conditions such as from a non-interactive service was fixed.
  • Changed the CodePrepareToInstall.iss example script to use the RunOnce registry key instead of a shortcut placed in {commonstartup}.
  • Pascal Scripting: the Non Unicode compiler now has a PAnsiChar type just like the Unicode compiler.
  • Added official Japanese translation.
  • Unicode [Code] based on RemObjects Pascal Script SVN code revision 197.
  • Minor tweaks

New in Inno Setup Compiler 5.3.6 (Nov 15, 2009)

  • Windows 7 change:
  • Added new [Setup] section directive: UninstallDisplaySize. On Windows 7 and newer, Setup uses this directive tset the EstimatedSize value in the Uninstall registry key when possible since the Windows 7 Add/Remove Programs Control Panel (called Program and Features) nlonger automatically calculates it. If an UninstallDisplaySize is not set, Setup estimates the size itself by taking the size of all files installed and adding any ExtraDiskSpaceRequired values set. Note: Windows 7 only supports the display of values smaller than 4 GB.
  • Pascal Scripting now supports IUnknown based COM. Previously it only supported IDispatch based COM but a growing number of Windows API functions are COM based without implementing the IDispatch interface, and you can now use these as well. See the new CodeAutomation2.iss example script for an example. Note: this is only supported by Unicode InnSetup at the moment, because of Delphi 2's limitations (Delphi 2 is used tcompile Non Unicode InnSetup):
  • Added StringToGUID, CreateComObject, and OleCheck support functions.
  • Added HResult, TGUID, TCLSID, and TIID support types.
  • The compiler nlonger allows a single LanguageCodePage directive tbe applied tmultiple languages at once. If you were using this tforce Non Unicode Setup tallow the user tselect any language regardless of the system code page, set [Setup] section directive ShowUndisplayableLanguages tyes instead.
  • Added new CodePrepareToInstall.iss example script.
  • Fix: Unicode Pascal scripting: passing a very long string tFormat caused an error.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.5 (Sep 23, 2009)

  • Windows 7 changes:
  • Setup, Uninstall and custom TOutputProgressWizardPage pages now make use of the new Windows 7 taskbar functionality to display progress, pause and error indicators on their taskbar buttons.
  • Added new [Icons] section parameter: AppUserModelID. Specifies the Windows 7 Application User Model ID for the shortcut. Ignored on earlier Windows versions and on server versions. This parameter can include constants.
  • Windows 7 and Vista changes:
  • Setup, Uninstall and custom TOutputProgressWizardPage pages now display pause and error indicators on their progress bars.
  • Setup and Uninstall now call the Windows API function ShutdownBlockReasonCreate to set the shutdown block reason string to be displayed to the user if system shutdown is initiated. Note: this change is purely cosmetic, the fact that Setup and Uninstall block system shutdown is not new.
  • Pascal Scripting changes:
  • TWinControl: Added new ParentBackground property. By setting this to False, you can ensure the background of a TPanel will always display the color assigned to its Color property, instead of it becoming transparent under certain conditions. See the CodeClasses.iss example script for an example.
  • The Unicode compiler now behaves identical to the Non Unicode compiler if a language uses more than one .isl file (it no longer requires the LanguageCodePage to be set in each file), or if a languages LanguageCodePage is overwritten from the .iss file (it no longer ignores this), or if any language specific plain text ANSI LicenseFile, InfoBeforeFile, or InfoAfterFile is used (it now converts these to Unicode using the languages LanguageCodePage at compile-time, instead of using the system codepage at run-time).
  • Fix: Pascal scripting: passing a Unicode string to some built-in functions like Copy caused the string to be converted to ANSI.
  • The uninstall program's version is now 51.(10)50.0.0.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.4 (Aug 17, 2009)

  • On Windows 7 the Compiler IDE now displays a progress indicator on its taskbar button.
  • Pascal Scripting: Documented function IDispatchInvoke, which can be used to access a COM Automation property or method whose name is a reserved word.
  • Unicode Inno Setup fixes:
  • [Registry] section entries with ValueType set to binary did not set the correct value.
  • Pascal scripting: setting a COM Automation property or method parameter to a Unicode string variable caused an 'Invalid Type' error.

New in Inno Setup Compiler 5.3.3 (Aug 17, 2009)

  • [Setup] section directives VersionInfoProductVersion now sets the binary product version value instead of the textual product version value.
  • Added new [Setup] section directive: VersionInfoProductTextVersion, which sets the textual product version value. Its default value is VersionInfoProductVersion if set, else VersionInfoVersion.
  • [Setup] section directives DisableDirPage and DisableProgramGroupPage can now be set to auto. If they are, at startup Setup will look in the registry to see if the same application is already installed, and if so, it will hide the pages automatically.
  • Pascal Scripting changes:
  • WizardForm.PrevAppDir is now available and returns the directory of the previous installation. Returns an empty string if there's no previous installation or if UsePreviousAppDir is set to no or if Uninstallable was previously set to no.
  • While running any PrepareToInstall event function Setup now displays the Preparing to Install wizard page instead of the Ready to Install page and disables itself.
  • Added the Windows 7 "compatibility" section to the various manifest resources used by Inno Setup.
  • Documentation improvements.

New in Inno Setup Compiler 5.3.2 Beta (Aug 17, 2009)

  • Replaced constant {regasmexe} with {dotnet11} and {dotnet20}.
  • Pascal Scripting: Added new PrepareToInstall event function. Return a non empty string from this function to instruct Setup to stop at the Preparing to Install wizard page showing the returned string as the error message.
  • Minor fixes and tweaks.

New in Inno Setup Compiler 5.3.1 Beta (Aug 17, 2009)

  • [Setup] directive AppMutex and support function CheckForMutexes change: to specify a mutex name containing a comma you can now escape the comma with a backslash.
  • Minor tweaks.

New in Inno Setup Compiler 5.3.0 Beta (Aug 17, 2009)

  • Added .NET support (these cause an internal error if used on a system with no .NET Framework present):
  • Added new [Files] section flag: gacinstall.
  • Added new [Files] section parameter: StrongAssemblyName.
  • Added new constants: {regasmexe}, {regasmexe32}, {regasmexe64}.
  • MinVersion parameter/directive change: if you leave one of the versions empty then it will use the default MinVersion for that platform.
  • Pascal Scripting: Added new MinimizePathName support function.
  • Added Unicode support: there's now a second version of Inno Setup available called Unicode Inno Setup. Key features of this version are its ability to display any language on any system regardless of the system code page, and its ability to work with Unicode filenames. Notes:
  • Unicode Inno Setup uses the existing ANSI .isl language files and you should not convert these to Unicode or anything similar since it does so automatically during compilation using the LanguageCodePage setting listed inside the language's .isl file. However, you do need to convert existing [Messages] and [CustomMessages] entries in your .iss files to Unicode if the language used a special "code page" (character set).
  • The [Setup] directive ShowUndisplayableLanguages is ignored by Unicode Inno Setup.
  • Unicode Inno Setup is compiled with Delphi 2009 instead of Delphi 2 and 3, leading to slightly larger files. The source code however is still compatible with Delphi 2 and 3, and a non Unicode version will remain available.
  • Unicode Inno Setup and installers created by it require Windows 2000/XP or newer. The non Unicode version still works on NT/9x.
  • Existing installations of your programs done by non Unicode installers can be freely updated by Unicode installers, and vice versa.
  • Unicode Pascal Scripting notes:
  • The Unicode compiler sees type 'String' as a Unicode string, and 'Char' as a Unicode character. Its 'AnsiString' type hasn't changed and still is an ANSI string. Its 'PChar' type has been renamed to 'PAnsiChar'.
  • The Unicode compiler is more strict about correct ';' usage: it no longer accepts certain missing ';' characters.
  • The new RemObjects PascalScript version used by the Unicode compiler supports Unicode, but not for its input source. This means it does use Unicode string types as said, but any literal Unicode characters in the script will be converted to ANSI. This doesn't mean you can't display Unicode strings: you can for example instead use encoded Unicode characters to build Unicode strings (like S := #$0100 + #$0101 + 'Aa';), or load the string from a file using LoadStringsFromFile.
  • Some support functions had their prototype changed: some parameters of CreateOutputMsgMemoPage, RegQueryBinaryValue, RegWriteBinaryValue, OemToCharBuff, CharToOemBuff, LoadStringFromfile, SaveStringToFile, and GetMD5OfString are of type AnsiString now instead of String.
  • Added new SaveStringsToUTF8File, and GetMD5OfUnicodeString support functions.
  • If you want to compile an existing script that imports ANSI Windows API calls with the Unicode compiler, either upgrade to the 'W' Unicode API call or change the parameters from 'String' or 'PChar' to 'AnsiString'. The 'AnsiString' approach will make your [Code] compatible with both the Unicode and the non Unicode version.
  • Unicode Inno Setup supports UTF-8 encoded .iss files (but not UTF-16).
  • Unicode Inno Setup supports UTF-8 and UTF-16LE encoded .txt files for LicenseFile, InfoBeforeFile, and InfoAfterFile.
  • QuickStart Pack: added ISPP predefined variable UNICODE.
  • Thanks to Carlo Kok and Evgeny Karpov of RemObjects Software for their help related to Unicode support.
  • QuickStart Pack: added ISPP functions Trim, and GetMD5OfUnicodeString.

New in Inno Setup Compiler 5.2.3 (Mar 11, 2008)

  • Improved support for right-to-left languages (Arabic and Hebrew): Added new [LangOptions] section directive: RightToLeft. If set to yes, text alignment and reading order will be reversed (with some intentional exceptions), and controls will be arranged from right to left ("flipped").
  • Added new [Setup] section directives: VersionInfoProductName and VersionInfoProductVersion.
  • Changed the fixed Language field in Setup's version info from "English (United States)" to "Language Neutral".
  • Uninstall now supports custom message constants ({cm:...}) like Setup.
  • Added workaround for bug in Windows Vista (still present in SP1): With UAC turned off, launching an uninstaller from the Programs and Features Control Panel applet and answering No at the confirmation message box would cause a "This program might not have uninstalled correctly" dialog to be displayed, even though the uninstaller includes a proper "Vista-aware" manifest.
  • QuickStart Pack: added ISPP functions GetMD5OfFile, GetMD5OfString and GetFileDateTimeString.
  • Minor tweaks.

New in Inno Setup Compiler 5.2.2 (Oct 23, 2007)

  • The Setup loader now extracts the Setup program executable file with a ".tmp" extension. Versions 5.2.0 and 5.2.1 used a ".exe.tmp" extension, which reportedly, in some cases, caused an "Unable to execute file in temporary directory" error message on systems with a certain antivirus program installed. We were unable to reproduce the error in our own tests, however; it is suspected that this may have only impacted users with custom filename blocking rules defined in their antivirus configuration.
  • Pascal Scripting: Added new GetSaveFileName support function.
  • Fix: The compiler could fail with an "Out of memory" error on script files containing more than ~100,000 lines, due to a heap fragmentation issue.

New in Inno Setup Compiler 5.2.1 (Oct 15, 2007)

  • Added new [Setup] section directive: SignedUninstaller, which makes it possible to attach a digital signature to the uninstaller program (unins???.exe). When the uninstaller has a valid digital signature, Windows Vista users will not see an "unidentified program" warning when launching it from outside of Control Panel.
  • Added new [Setup] section directive: SignedUninstallerDir.
  • Check functions associated with [Tasks] entries are now called when the Select Tasks wizard page is entered. Previously, they were called prior to the wizard being shown, which meant they couldn't depend on the user's selections in preceding wizard pages. (There are plans to make the same change to [Components] in the future.)
  • Brought back the pre-5.1.13 duplicate [Components]/[Tasks] entry semantics. For example, in the following case:
  • [Tasks]
  • Name: foo; Description: "foo #1"; Components: bar
  • Name: foo; Description: "foo #2"; Components: not bar
  • Name: foochild; Description: "foochild"
  • "foochild" will now, once again, be shown regardless of which "foo" is conditionally created.
  • Pascal Scripting: "files:" function imports may now include multiple filenames. "files:A.dll,B.dll" will cause both A.dll and B.dll to be extracted before A.dll is loaded.
  • On Windows Vista, Setup no longer alters the uninstaller program's manifest resource to request elevation, because this would invalidate a digital signature. Instead, the uninstaller now respawns itself when elevation is required, much like Setup does beginning with version 5.2.0.
  • The uninstall program's version is now 51.49.0.0.
  • Minor tweaks.

New in Inno Setup Compiler 5.2.0 (Sep 20, 2007)

  • On Windows Vista, [Run] section entries with the postinstall flag no longer inherit Setup's elevated privileges by default, and instead now execute with the (normally non-elevated) credentials of the user that started Setup initially. (There are some exceptions; see the runasoriginaluser flag documentation for details.)
  • Added new [Run] section flags: runascurrentuser and runasoriginaluser. These control which user credentials are used on Windows Vista when spawning processes. (runasoriginaluser is the default when the postinstall flag is used; runascurrentuser is the default otherwise.)
  • Improved compression of x86 executable files. (This reduced the size of Inno Setup's own installer by approximately 10 KB.)
  • Added new [Files] section parameter: ExternalSize.
  • Added new constant: {log}. Translates to the log file name, or an empty string if logging is not enabled.
  • Added new [Files] and [Dirs] sections flags: setntfscompression and unsetntfscompression. These flags instruct Setup to enable or disable NTFS compression on the file or directory.
  • Pascal Scripting:
  • Added new ExecAsOriginalUser, ShellExecAsOriginalUser, and SetNTFSCompression support functions.
  • Now supports new DLL loading flag loadwithalteredsearchpath to load DLLs with the Windows flag LOAD_WITH_ALTERED_SEARCH_PATH.
  • The Setup loader now uses the original Setup EXE filename .tmp as the filename for the extracted Setup executable instead of a name comprised of random letters and numbers, which may have seemed suspicious to firewall users.
  • In a multilingual installation, Setup now waits until after the Select Language dialog is shown to display any error messages concerning the user's Windows version or privilege level.
  • Fix: On Windows Vista, AutoPlay wasn't being suppressed when the user swapped out discs in a disk-spanned install.
  • Fix: When the waituntilidle flag was used in the [UninstallRun] section, it behaved like waituntilterminated.
  • Based on RemObjects Pascal Script SVN code revision 1045a.
  • The uninstall program's version is now 51.48.0.0.

New in Inno Setup Compiler 5.1.13 (Jul 23, 2007)

  • Added new lzma/ultra64 compression level. Same as lzma/ultra, but uses a dictionary size that is twice as large (64 MB).
  • Added new SetupLogging [Setup] section directive. If set to yes, Setup will always create a log file (equivalent to passing /LOG on the command line).
  • Added new AppSupportPhone [Setup] section directive.
  • Added new [Files] section flag: solidbreak.
  • Added new [Run] and [UninstallRun] sections parameter: Verb. When used with the shellexec flag, specifies the action to be performed on the file.
  • When the shellexec flag is used in the [Run] and [UninstallRun] sections, it now uses the default verb for the file type instead of hardcoding "open". (If necessary, you can override this by adding a Verb parameter.)
  • Setup now supports a /TYPE parameter to override the default setup type.
  • Components/tasks-related changes: /COMPONENTS & /TASKS: When a parent component/task is specified, it no longer automatically checks every child component/task. To achieve the old behavior, prefix the name of the parent component/task with a "*" character, or list each child component/task individually. | /COMPONENTS: It is now possible to force a child component to be deselected by including its name in the list with a "!" prefix. (/TASKS already supports this.) | /COMPONENTS is now ignored if no custom type is defined. | /SAVEINF now writes the selected setup type in the INF file. Previously, using /LOADINF would always select a custom type. | /SAVEINF now writes the selected tasks in the INF file. | When a MinVersion/OnlyBelowVersion/Languages/Check/Components parameter causes a parent component/task to be hidden from view, child items will now be hidden as well. (Previously, it was necessary to include the same conditions on every child item in order for them to be hidden along with the parent item.) | Fix: When new child components/tasks were introduced in a new install, they would always be selected by default if the parent component/task was selected in the previous installation. | Fix: /LOADINF would select child components that weren't selected during the initial install. | Fix: In a /COMPONENTS parameter, it is no longer necessary to list fixed components in order for them to be selected.
  • Pascal Scripting changes: FindFirst/FindNext: Add CreationTime, LastAccessTime, LastWriteTime, AlternateName fields to TFindRec. | TInputFileWizardPage: Added new IsSaveButton property. This can be used to make a button open a Save As dialog instead of the default Open dialog. | TNewCheckListBox: Setting Checked[] to True will no longer automatically check an item's child check boxes. To do that now, call the new CheckItem method with coCheckWithChildren in the AOperation parameter. | ParamStr/ParamCount: Empty parameters ("") are no longer skipped.
  • /LOG: Logged times now include milliseconds.
  • Compiler IDE changes: During the compression phase of a compile, the status bar now shows the estimated time remaining and KB compressed/second. | The Edit | Redo shortcut is now Ctrl Y. The previous shortcut (Shift Ctrl Z) still works too.
  • Fix: In the [INI] section, if Filename was blank, the uninsdelete* flags didn't actually delete anything.
  • The uninstall program's version is now 51.47.0.0.
  • Minor tweaks.

New in Inno Setup Compiler 5.1.11 (Mar 3, 2007)

  • On Windows 2000 and later, it now uses Windows' own regsvr32.exe to handle DLL registration/unregistration instead of an internal program. This should address errors seen on Windows Vista when registering certain older DLLs. (Windows Vista applies a compatibility fix known as "WRP Mitigation" to regsvr32.exe, which allows it to successfully register DLLs that attempt to write to system registry keys in violation of Windows Resource Protection.)
  • Some messages have been added and removed in this version.
  • New messages: ErrorRegSvr32Failed.
  • Removed messages: ErrorRegisterServerMissingExport.
  • The uninstall program's version is now 51.46.0.0.
  • Minor tweaks.

New in Inno Setup Compiler 5.1.10 (Feb 28, 2007)

  • Added two new [Run]/[UninstallRun] section flags: 32bit and 64bit. Similar to the [Files] section flags of the same name, these override the install mode and affect which System directory the {sys} constant maps to on 64-bit Windows.
  • Pascal Scripting: Added new EnableFsRedirection support function, On the Exec function, you can now pass '>' in the Filename parameter and it will use the value of the Params parameter as the full command line. This feature can come in handy when executing command lines obtained from UninstallString registry values; no longer is it necessary to separate strings into filename and parameter components manually. Fix: IsComponentSelected and IsTaskSelected didn't accept forward slashes.
  • Improved Setup's folder tree view control (seen when a Browse button is clicked): On Windows Vista, it now uses the same theme as Windows Explorer. On Windows Vista, for consistency with Explorer, single-clicking in a node's text area no longer causes the node to expand. Like Windows Explorer, folder nodes now use the shell's "display names", as opposed to the actual directory names. This matters on localized versions of Windows Vista, where the on-disk names of system folders are always in English. The system "icon" font is now used instead of the default dialog font. This font defaults to Segoe UI on Windows Vista, and typically Tahoma or MS Sans Serif on earlier versions of Windows. Disconnected network drives are now listed; expanding one will restore the connection (on Windows 2000, Me, and later).
  • On the Select Destination Location wizard page (as well as custom directory selection pages created using the CreateInputDirPage support function), if the letter of a disconnected network drive is entered, and the user is running Windows XP or later, it will now attempt to restore the connection automatically when Next is clicked. (It also does this on silent installs.)
  • On Windows Vista, eliminated the flickering on Setup's progress bar (purely a cosmetic issue).
  • On Windows Vista, Setup now calls SetProcessDPIAware to avoid bitmap scaling when Windows is configured to use Large Fonts and the "Use Windows XP style DPI scaling" option is unchecked (not the default setting).
  • Compiler IDE changes: Added new option: Always launch Setup/Uninstall as different user. This forces the IDE to display a "Run as" dialog when launching Setup/Uninstall. The Stop Compile command now displays a confirmation message box.
  • Added a "Vista-aware" manifest resource to ISCC so it doesn't request elevation on Windows Vista.
  • Fix: ISCC didn't always print error messages when standard output was redirected to a file.
  • When Setup fails to set the permissions on files, directories, or registry keys, the error code is now included in the log output.
  • When Setup fails to expand a shell folder constant, a warning message containing the error code is now logged.
  • Changed the way version information is read from VXD files to be more compliant with the MSDN docs.
  • The uninstall program's version is now 51.45.0.0.
  • Minor tweaks.