Inno Setup 4.0
Revision History
Copyright © 1997-2004 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2004 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.
4.0.11 (2004-01-09)
- Updated to the newest version of the Innerfuse Pascal Script scripting engine used for the [Code] section (2004-01-09 00:00 GMT). Among other things this means 'short-circuit boolean evaluation' a.k.a. 'lazy boolean evaluation' is used for the [Code] section now. (ML)
- New Permissions parameter supported by the [Dirs] and [Registry] sections. It allows you to grant "Modify" permission on directories and registry keys to the Authenticated Users, Everyone, and/or Users groups.
- The constants {commonappdata} and {commondocs} are no longer mapped to their "user" counterparts when the user lacks administrative privileges. (Previously, all {common*} constants were mapped to their "user" counterparts.)
On Windows 95/98/Me, all {common*} constants except for {commonappdata} and {commondocs} are mapped to their "user" counterparts.
- On the Select Start Menu Folder wizard page, the list of existing folders now includes folder names from both the common Start Menu and the user's Start Menu. Previously, it only showed one or the other depending on whether the user had administrative privileges.
- File time stamps are now rounded down to the nearest 2-second boundary.
- Compiler IDE: Added new Edit | Go to Line command.
- Improved "unsafe file" checking: In addition to checking for files that shouldn't be deployed to {sys}, it now checks for certain files that must be deployed to {sys}. See the Unsafe Files topic in the help file for more information.
- The uninstall program's version is now 51.10.0.0.
- Minor tweaks.
4.0.10 (2003-11-28)
- Compiler safety improvements:
- On [Files] section entries, referencing DLL files in your own Windows System directory is now prohibited (by default). This was determined to be necessary because far too many users were cluelessly deploying non-redistributable, platform-specific versions of Microsoft DLLs from their own Windows System Directory onto users' systems, rendering them unbootable. It is hoped that this change will encourage users to track down the correct, redistributable versions of DLLs they want to deploy. See the Unsafe Files topic in the help file for more information.
- A warning is now issued if you use the ignoreversion flag on a file that is to be installed to {sys}. (Don't do that; it's dangerous.)
- More DLLs have been added to the list of unsafe files.
- Added new [Setup] section directive: TimeStampsInUTC.
- Added new [Setup] section directive: LanguageDetectionMethod, which replaces and extends DetectLanguageUsingLocale.
- The [Setup] section directive ShowLanguageDialog can now be set to auto, in which case the dialog will only be displayed if Setup does not find a language identifier match.
- Added new support function: RegGetSubkeyNames.
- Minor tweaks.
4.0.9 (2003-10-22)
- Specifying .bat and .cmd files directly in the Filename parameter of [Run]/[UninstallRun] section entries is now supported and encouraged. Special care is taken to ensure that quoted parameters are passed to the command interpreter properly.
- New [Setup] directive: AllowCancelDuringInstall.
- New [Run]/[UninstallRun] section flag: runhidden.
- The BrowseForFolder support function now uses the current value of the Directory parameter as the initially selected directory.
- Constants may now be used in the [Setup] section directive UninstallDisplayName.
- Compiler IDE improvements:
- Editor: New option: Allow cursor to move beyond end of lines.
- Editor: Now uses any selected text as the initial Find text on the Find and Replace dialogs.
- Script Wizard: When you click the Add directory button it now asks if you want to include files in subdirectories also.
- Now keeps the MRU list consistent between multiple running instances.
- Fix: Child [Tasks] items that had the exclusive flag were being initially checked regardless of whether the unchecked flag was used.
- Based on Innerfuse Pascal Script 3 CVS code from 2003-09-26 00:00 GMT.
- The uninstall program's version is now 51.9.0.0.
- Minor tweaks.
4.0.8 (2003-09-22)
- The uninstaller now returns a non-zero exit code if the user cancels or a fatal error is encountered. See the new Uninstaller Exit Codes topic in the help file for more details.
- The uninstall program's version is now 51.8.0.0. (This change should've actually been made in 4.0.7.)
- Based on latest Innerfuse Pascal Script 3 CVS code (from 2003-09-21 00:00 GMT).
4.0.7 (2003-09-18)
- Based on latest Innerfuse Pascal Script 3 CVS code (from 2003-09-17 21:20 GMT), which should fix the errors some were having with "const" in 4.0.6.
- Files/directories with the System attribute set are now included when a wildcard and/or the recursesubdirs flag is used on a [Files] section entry.
- To make it possible to call Inno Setup <= 3 uninstallers from Inno Setup 4 uninstallers using [UninstallRun], changed the name of the Inno Setup uninstaller's internal window. This is needed to avoid the single-instance check in the uninstaller from Inno Setup 3 and earlier.
4.0.6 (2003-09-15)
- Added IsPowerUserLoggedOn support function. (ML)
- Added RegisterServer, UnregisterServer, UnregisterTypeLibrary, DecrementSharedCount and UnregisterFont support functions. (ML)
- Fix: The [Registry] section's preservestringtype flag only had an effect when the {olddata} constant was used in the ValueData parameter.
- Fix: When processing an #include directive, it now looks for the included file in the directory of the file that has the #include directive. (Really, this time.)
- Fix: Fixed control positioning issues with wizard pages displayed by Pascal Scripting functions.
- Based on Innerfuse Pascal Script 3 version 1.21 (actually, the CVS code from 2003-08-29 00:00 GMT).
- Added missing documentation for the TPaintBox support class. (ML)
- Minor tweaks.
4.0.5-beta (2003-07-17)
- New [Files] section flag: uninsremovereadonly, which causes the uninstaller to remove any read-only attribute from the file before trying to delete it.
- The pre-install check for pending rename/delete operations is now performed on silent installations too. (See the Wizard Pages topic in the help file for more details.)
- Now shows filenames of shortcuts as they're created.
- AutoPlay is now suppressed while the Setup Needs the Next Disk dialog is up.
- For safety, calling ExpandConstant('{app}') before a directory has been selected by the user now raises an exception instead of returning an empty string.
- Fix: Languages wasn't set on Run entries generated by the isreadme [Files] section flag.
- Changed message: StatusCreateIcons now says "shortcuts" instead of "program icons".
- Based on Innerfuse Pascal Script 3 CVS checked out on 2003-07-16.
- The uninstall program's version is now 51.7.0.0.
- Minor tweaks.
4.0.4-beta (2003-06-13)
- Values greater than 2 GB may now be used in ExtraDiskSpaceRequired.
- Fix: Event functions that returned strings (such as Check functions) quit working in 4.0.3-beta.
- Fix: Reintroduced the TWinControl properties that were lost in the 4.0.3-beta's IFPS update.
4.0.3-beta (2003-06-12)
- Updated to the newest version of the Innerfuse Pascal Script scripting engine used for the [Code] section. Among other things this means you can now use the with keyword and sets. (ML)
- Decreased size of installations by 25+ KB compared to previous versions of Inno Setup 4.
- Constants may now be used in the Description and StatusMsg parameters of the [Run] section.
- Added GetOpenFileName support function. (ML)
- Added InputFile and InputFileArray support functions to show custom wizard pages for selecting files. (ML)
- For better MSAA compatibility, Setup now uses static text controls instead of TLabels.
- Before replacing an existing font file Setup now calls RemoveFontResource().
- Commas may now be entered on Select Start Menu Folder wizard page.
- Increased height of the tasks list on the Select Additional Tasks wizard page so that more items can fit without a scroll bar being displayed.
- Fix: Custom wizard pages opened by OutputProgress or by OutputMsg with WaitUntilClick set to False weren't correctly painted entirely after opening them. (ML)
- Fix: The descriptions of types generated by the compiler if a script has a [Components] section but no [Types] section now correctly support multilingual installations. (ML)
- Minor tweaks.
4.0.2-beta (2003-05-16)
- Fix: In version 4.0.1-beta, using Compression=bzip and SolidCompression=no could result in an "Out of memory" error. The problem actually wasn't that it was running out of memory; due to subtle changes in the way 4.0.1 allocates/frees buffers, the process's address space was becoming fragmented (courtesy of a deficiency in Delphi's memory manager) and eventually, after a certain number of files were extracted, it would run out of address space. A workaround has been implemented that should permanently eliminate this issue.
- Fix: Languages parameter now works with [Types]. (ML)
- Minor tweaks.
4.0.1-beta (2003-05-12)
- Added support for solid compression, controlled via the new [Setup] section directive SolidCompression. This causes all files to be compressed at once instead of separately. This can result a much greater overall compression ratio if your installation contains many files with common content, such as text files.
Please read the full description in the help file before using this feature; don't just blindly enable it or you may be in for some surprises.
- Multilingual support improvements:
- A new common parameter called Languages is now supported which limits the processing of an entry to the specified language(s). (ML)
- The [Languages] section now supports LicenseFile, InfoBeforeFile, and InfoAfterFile parameters. These are language-specific versions of their [Setup] section counterparts. (ML)
- Added ActiveLanguage support function. (ML)
- Added new [Setup] section directive DetectLanguageUsingLocale.
- Setup now hides accelerator keys and focus rectangles on its dialogs by default if the "Hide keyboard indicators" option is enabled in Control Panel's Display Properties.
- Optimization: Separate bottlenecks in the compiler and Setup program that resulted in needlessly slow performance on scripts/installations with thousands of files have been virtually eliminated through use of a hash table.
- ISCC now always shows the filename in error messages, not just for errors in included files.
4.0.0-pre1 (2003-04-18)
- New features:
- All features from Martijn Laan's My Inno Setup Extensions have been merged:
- The installer now supports 'Pascal scripting' to further customize it in many ways. For more information, see the Pascal Scripting section in the help file.
- Subcomponents, subtasks and exclusive components are now supported. For more information, see the [Components] section, the [Tasks] section and the [Setup] section directive ShowTasksTreeLines in the help file.
- The installer and uninstaller now use a modern looking icon.
- The components, tasks and postinstall [Run] entries lists now automatically word wrap entries if needed, are drawn themed on Windows XP and correctly show or hide focus rectangles and keyboard accelerators when needed.
- If not all available tasks fit on the Select Additional Tasks wizard page, a scroll bar appears automatically.
- If there's only one setup type defined in the [Types] section and that type is a custom type, the types list on the Select Components wizard page is no longer shown.
- When the Script Wizard places an English phrase in a generated script, it now also adds a note about this to the script.
- Multilingual installations are now supported via the new [Languages] section.
- Disk spanning now supports CD/DVD-ROMs.
(This was never officially supported previously because in some cases users were getting messages from the system about the wrong volume being in the drive after switching disks. A workaround has been introduced to avoid this.)
- New constants:
- {language}
- {drive:...}, which extracts the drive letter and colon (e.g. "C:") from the specified path. In the case of a UNC path, it returns the server and share name (e.g. "\\SERVER\SHARE").
- New [Setup] section directives:
- ShowLanguageDialog
- DiskSliceSize
- SlicesPerDisk
- Changes/Improvements:
- The 2 GB limitation is gone; the total size of an installation's files can now be up to 2^63 bytes (that's over 8,000,000,000 gigabytes) or thereabouts. Individual files can also be this large, but note that FAT and FAT32 partitions have file size limitations of 2 GB and 4 GB respectively.
The maximum size of a compiled setup.exe file remains 2,100,000,000 bytes, so if you are creating an installation with a compressed size larger than that, it is necessary to enable the disk spanning feature (by setting DiskSpanning to yes and DiskSliceSize to a large number) to split the installation into smaller chunks, even if you don't actually have multiple physical disks. For more information, see the updated description of the DiskSpanning directive in the help file.
- The [Setup] section directive DisableStartupPrompt now defaults to yes.
- It's now possible to run more than one Inno Setup uninstaller simultaneously, provided they're not the same uninstaller. This makes it possible for one uninstaller to call another Inno Setup uninstaller during the uninstall process.
- The backslash removal mentioned in the Constants topic of the help file now applies to all constants, instead of just some as before.
- The script parser now treats leading and trailing control characters (e.g. tabs) in unquoted parameter values the same way as spaces -- it trims them off.
- Dropped the (attempted) support for Windows 95 "server-based setups", which has been in Inno Setup since version 1.0. What this did was alter the {sys} constant to be equal to {win} when the Windows System directory was neither a subdirectory of the Windows directory nor writable. Now, {sys} will always point to the Windows System directory.
- Compiler IDE:
- Added a "Stop Compile" button. It's also now possible to move and minimize the window during compilation.
- It no longer requires the script to be saved before compiling. SourceDir will default to the directory the IDE was started from.
- New messages: SelectLanguageTitle, SelectLanguageLabel, UninstallOpenError.
- Miscellaneous minor tweaks not worthy of mention here.
- This version is derived from Inno Setup 3.0.7, and therefore includes all of the features and fixes from that version.
Inno Setup 3.0 Revision History