Inno Setup 6
История версий
Авторские права © 1997-2024 Jordan Russell. Все права
защищены.
Смежные авторские права © 2000-2024 Martijn Laan. Все права защищены.
Условия распространения и использования смотрите в LICENSE.TXT.
Хотите получать уведомления об обновлениях? Подпишитесь
на рассылку о новых выпусках Inno Setup.
6.3.3 (2024-07-12)
- Улучшена поддержка ASLR (Случайное Размещение Адресного Пространства).
6.3.2 (2024-06-28)
- Изменения в Pascal Scripting: исправлена работа функции TStream.Seek.
6.3.1 (2024-06-10)
- Исправлена ошибка запуска компилятора IDE на системах с очень высоким
масштабированием (DPI).
6.3.0 (2024-06-09)
Улучшена поддержка файлов в кодировке UTF-8
- Добавлена поддержка кодировки UTF-8 без маркера BOM для файлов
сценариев .iss, файлов сообщений .isl, файлов LicenseFile, InfoBeforeFile,
InfoAfterFile и файлов, подключаемых директивой #file
ISPP.
- Изменения в IDE компилятора:
- Новые файлы сценариев теперь по умолчанию сохраняются в кодировке
UTF-8 без BOM, что позволило привести IDE в соответствие с
большинством других текстовых редакторов. Существующие файлы
сохраняются в прежнем виде до тех пор, пока кодировка сохранения не
будет изменена вручную с помощью команды "Save Encoding"
(Сохранить в кодировке) в меню "File" (Файл).
- В подменю "Save Encoding" (Сохранить в кодировке) добавлен
новый пункт "UTF-8 with BOM" для записи новых файлов с
маркером BOM.
- Изменения в Pascal Scripting:
- Функция LoadStringsFromFile теперь также поддерживает
файлы в кодировке UTF-8 без BOM.
- Добавлена новая функция SaveStringsToUTF8FileWithoutBOM.
- Изменения ISPP: вывод препроцессора, сохраняемый с помощью SaveToFile,
теперь всегда выполняется в кодировке UTF-8 без маркера BOM.
Улучшена поддержка систем Arm64 и внесены
сопутствующие изменения
- Теперь программа установки официально поддерживает установку 64-бит
приложений на системы Windows 11 с архитектурой Arm64, которые могут
запускать 64-бит исполняемые файлы посредством эмуляции. Чтобы
обеспечить корректную работу программ установок 64-бит приложений на
системах Windows 11 с архитектурой Arm64, в существующие сценарии
потребуется внести незначительные изменения. Самое главное:
- В директивах ArchitecturesAllowed и ArchitecturesInstallIn64BitMode
значение x64 следует заменить на x64compatible.
- В параметре Check и в секции [Code] любое
обращение к функции IsX64 следует заменить на функцию IsX64Compatible.
- В секции [Code], если используются сравнения вида ProcessorArchitecture
= paX64, заменить их на вызов функции IsX64Compatible.
Ключевое различие между x64/IsX64
и новым x64compatible/IsX64Compatible заключается в
том, что последний соответствует как Windows 64-бит, так и Windows 11
на платформе Arm64.
В большинстве случае следует сделать указанные выше изменения,
иначе пользователи систем Arm64 не смогут запустить ваши программы
установки. К примеру, настройка ArchitecturesAllowed=x64
позволит запустить инсталлятор только на системе Windows 64-бит — но не
на системе Arm64 Windows 11. Или, если программа установки содержит обе
разрядности приложения, как 32-бит, так 64-бит, то при запуске на
системе Arm64 Windows 11 автоматически может быть выбрана 32-бит версия
приложения вместо ожидаемой 64-бит.
- Были улучшены директивы ArchitecturesAllowed и ArchitecturesInstallIn64BitMode
в секции [Setup]:
- Введены шесть новых идентификаторов архитектуры. Кратко:
- arm32compatible соответствует системам, способным
запускать 32-бит двоичные файлы Arm.
- x64compatible соответствует системам, способным
запускать 64-бит исполняемые файлы.
- x64os соответствует системам, работающим только по
управлением Windows 64-бит (равнозначно существующему
идентификатору x64, который теперь устарел).
- x86compatible соответствует системам, способным
запускать 32-бит исполняемые файлы.
- x86os соответствует системам, работающим только по
управлением Windows 32-бит (равнозначно существующему
идентификатору x86).
- win64 соответствует системам, работающим по
управлением Windows 64-бит, независимо от архитектуры.
Более подробно о каждом идентификаторе см. раздел справки "Идентификаторы
архитектуры".
- Теперь поддерживаются логические выражения. Например, с помощью
оператора and можно затребовать одновременного совпадения
двух идентификаторов архитектуры. Примеры использования см. в
разделе справки "ArchitecturesAllowed".
- Идентификатор архитектуры x64 теперь устарел. Если он
используется, компилятор выдаст предупреждение и заменит его на x64os,
который имеет тот же эффект. Но, как уже говорилось ранее, в большинстве
случаев следует использовать x64compatible, поскольку
он соответствует как Windows 64-бит, так и Arm64 Windows 11.
- Все 64-разрядные примеры сценариев 64Bit*.iss, были
обновлены для использования x64compatible в качестве
предпочтительного варианта.
- Некоторые 64-разрядные функции, которые раньше работали только в
Windows 64-бит, теперь работают и в Windows 11 на платформе Arm64. К ним
относятся:
- Параметр Permissions в секции [Dirs] при
запуске в 64-разрядном режиме установки;
- Параметр Permissions в секции [Files] при
запуске в 64-разрядном режиме установки или когда используется флаг
64bit;
- Параметр Permissions в секции [Registry] при
запуске в 64-разрядном режиме установки или когда значение параметра
Root завершается на 64;
- Флаг regtypelib в секции [Files] при запуске в
64-разрядном режиме установки или когда используется флаг 64bit.
Обратите внимание, что всё вышеперечисленное по-прежнему не
поддерживается в Windows 10 на платформе Arm64.
- Теперь при установке ведётся журнал типов машин, поддерживаемых
системой, т.е. какие типы ЕХЕ-файлов могут быть выполнены как напрямую,
так и посредством эмуляции. Например, при запуске на системе Arm64
Windows 11 в журнале появится запись: Machine types supported by
system: x86 x64 Arm32 Arm64.
- Сообщение OnlyOnTheseArchitectures больше не используется.
Вместо него теперь выводится сообщение WindowsVersionNotSupported,
когда Setup запускается на архитектуре, которая не разрешена выражением
ArchitecturesAllowed. (Но, пожалуйста, не удаляйте это
сообщение из файлов перевода).
- Изменения Pascal Scripting: добавлены новые функции IsArm32Compatible,
IsX64Compatible, IsX64OS, IsX86Compatible и
IsX86OS. Функция IsX64 все ещё существует, но уже
устарела, как объяснялось выше. Ниже показан пример проверки всех
идентификаторов архитектуры:
[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;
Улучшена поддержка файлов #include
- Теперь IDE компилятор может открыть во вкладках до 20 файлов #include
вместо 10.
- Добавлена возможность закрытия вкладок с открытыми файлами #include: в
меню "View" (Вид) добавлены новые пункты "Close Tab"
(Ctrl+F4) (Закрыть вкладку), "Reopen Tab" (Переоткрыть вкладку)
и "Reopen All Tabs" (Переоткрыть все вкладки), которые также
доступны в контекстном меню при клике по панели вкладок.
- На выбранной вкладке (или при наведении мышки) с файлом #include
теперь отображается кнопка закрытия.
- В строку состояния добавлена кликабельная панель, показывающая
количество закрытых вкладок, если таковые имеются.
- Устранено мерцание (особенно заметное в темном режиме) при
переключении вкладок.
Удалена поддержка Windows Vista, Windows Server 2008
и архитектуры Itanium
- Изменения в требованиях ОС: Windows Vista и Windows Server 2008
больше не поддерживаются. Windows 7 и Windows Server 2008 R2 теперь
являются минимальными поддерживаемыми системами. Директива MinVersion
в секции [Setup] по умолчанию все ешё имеет значение 6.1sp1,
поэтому по умолчанию программа установки все также не будет работать
Windows 7 и Windows Server 2008 R2, которые не были обновлены.
- Устаревшая архитектура Itanium больше не поддерживается. Идентификатор
архитектуры ia64 был удалён и теперь при запуске на системе
Itanium программа установки будет выдавать сообщение об ошибке
WindowsVersionNotSupported.
- В секции [Icons] удалён флаг foldershortcut,
который и так игнорировался, за исключением случаев работы на Windows
Vista или Windows Server 2008, так как ярлыки папок в меню "Пуск" больше
не раскрываются.
Изменения в IDE компилятора:
- На панель инструментов добавлены кнопки и горячие клавиши для
навигации назад (Alt+Left) и вперед (Alt+Right). Также поддерживается
навигация при помощи нажатия Х-кнопок мышки. Элемент навигации
добавляется при смене вкладок или перемещении на 11 и более строк
одновременно, аналогично Visual Studio 2022.
В связи с тем, что клавиши Alt+Right больше не могут использоваться для
инициирования автозавершения, теперь вместо них следует использовать
существующую комбинацию Ctrl+Space или альтернативную Ctrl+I. Чтобы
по-прежнему использовать комбинацию Alt+Right, активируйте горячие
клавиши в стиле Visual Studio, см. ниже.
- В меню "Build" (Сборка) и "Run" (Отладка) добавлена
поддержка горячих клавиш в стиле Visual Studio (например, Ctrl+- для
перехода назад, Ctrl+B для компиляции и F5 для запуска). Для активации этой
функции воспользуйтесь пунктом "Options" (Настройки) меню "Tools"
(Инструменты) и выберите в новом параметре Key Map (Клавиатурные
команды) опцию Visual Studio.
- Добавлена поддержка множественного выделения (Ctrl+Клик или
Ctrl+Перетаскивание). Операции ввода, возврата, удаления, отмены, повтора,
копирования и вставки – все это работает с множественными выделениями,
добавленными таким образом, или с помощью уже существующей поддержки
выделения блоков текста (Alt+Shift+Стрелки или Alt+Перетаскивание).
- Добавлена комбинация клавиш для преобразования множественного
выделения в одно или одного выделения в пустое (Esc).
- Добавлена поддержка тёмной темы в заголовок окна на Windows 10 версии
2004 и выше.
- Добавлена поддержка тёмной темы в главное меню на всех версиях
Windows.
- Добавлена поддержка тёмной темы в контекстное меню на Windows 10
версии 1903 и более поздних версиях вплоть до Windows 11 версии 23H2,
которая на данный момент является последней версией Windows 11.
- Обновлены значки редактора, используемые в поле справа от номера
строки, включая автоматический выбор значков высокого качества при более
высоких настройках DPI.
- Строки с установленными точками останова теперь отображаются в виде
обычных строк вместо текста белого цвета на красном фоне.
- Точки останова теперь сохраняются между сессиями для каждого файла.
- В меню "Run" (Отладка) добавлен новый пункт "Delete All
Breakpoints" (Shift+Ctrl+F5) (Удалить все точки останова).
- Добавлены значки для элементов меню.
- Добавлены новые параметры "Highlight occurrences of current selection"
(Подсвечивать совпадения текущего выделения) и "Highlight occurrences
of current word" (Подсвечивать совпадения текущего слова). По умолчанию
первый параметр включен, а второй отключен.
- Параметр "Allow cursor to move beyond end of lines" (Перемещать
каретку за пределы конца строк) теперь по умолчанию отключен, как и в
большинстве других редакторов.
- Если параметр "Allow cursor to move beyond end of lines"
(Перемещать каретку за пределы конца строк) включен, то нажатие клавиши
со стрелкой влево, когда курсор находится в начале строки, больше не
перемещает курсор в конец предыдущей строки, если не нажата клавиша
Ctrl, как в Notepad++, Visual Studio и RAD Studio.
- Мастер создания нового сценария теперь предлагает возможность
импортировать .reg-файл реестра Windows.
- Мастер создания нового скрипта теперь автоматически устанавливает
значения директив ArchitecturesInstallIn64BitMode и ArchitecturesAllowed
на x64compatible, если обнаруживает, что выбранный основной
исполняемый файл является 64-разрядным. Основным исполняемым файлом по
умолчанию теперь является 64-разрядный исполняемый файл примера
MyProg-x64.exe, а не 32-разрядный файл MyProg.exe.
- В меню "Tools" (Инструменты) добавлен новый пункт "Generate
[Registry] Entries..." (Ctrl+Shift+R) для импорта в секцию [Registry]
данных из файла реестра Windows (.reg). Если секция [Registry]
не существует, она будет создана.
- В меню "Tools" (Инструменты) добавлен новый пункт "Generate
[Files] Entries..." (Ctrl+Shift+I) для вставки в секцию [Files]
дополнительных записей о файлах и/или папках. Если секция [Files]
не существует, она будет создана.
- Инструмент "Generate MsgBox/TaskDialogMsgBox Call..."
(Ctrl+Shift+M) (ранее известный как MsgBox/TaskDialogMsgBox Designer)
теперь учитывает настройки ширины и символов табуляции редактора, делает
соответствующие отступы в генерируемом Pascal-сценарии и предупреждает,
если позиция курсора находится не в секции [Code].
- Небольшая коррекция цвета темы, например, другой цвет фона для
выделенного текста.
Улучшена поддержка ведения журнала
- Добавлен новый флаг logoutput для секций [Run] и [UninstallRun].
Он указывает программе установки/удаления вести протокол запускаемой
программы или пакетного файла. Это флаг нельзя комбинировать с флагами nowait,
runasoriginaluser, shellexec и waituntilidle.
Он не имеет никакого действия, если ведение журнала не включено.
- В секции [Setup] добавлена новая директива UninstallLogging
со значением по умолчанию no. При значении yes,
программа удаления всегда будет создавать файл отчёта, если её запуск
был выполнен из панели управления "Добавление/Удаление программ".
Эквивалентна передаваемому в командной строке параметру /LOG.
- Изменения цифровой подписи: инструмент цифровой подписи теперь всегда
регистрирует свои события в IDE компилятора на панели "Сообщения
компилятора", что облегчает отладку проблем. В связи с этим инструменты,
являющиеся консольными программами, теперь всегда будут запускаться
скрыто, так как их вывод перехватывается, и они ничего не будут
отображать в своем окне.
- Изменения Pascal Scripting: добавлена новая функция ExecAndLogOutput.
Может быть использована для записи протокола запускаемой программы или
пакетного файла в журнал программы установки/удаления или для получения
построчного результата в собственной функции из секции [Code],
как показано в справочной документации.
- Изменения ISPP:
- Протокол о запуске программ или пакетных файлов, выполненных при
помощи функции Exec, теперь по умолчанию всегда
регистрируется в IDE компилятора на панели "Сообщения компилятора".
Его можно отключить при помощи нового аргумента функции.
- Добавлена новая функция ExecAndGetFirstLine для запуска
программы или пакетного файла и чтения первой непустой строки из
протокола запуска, которая может быть использована в сценарии, как
показано в примере сценария PowerShell.iss.
Другие изменения
- Изменения в консольном компиляторе (ISCC): добавлена поддержка вывода
в кодировке Unicode.
- В секции [Files] добавлен новый флаг signcheck.
Указывает компилятору проверять наличие цифровой подписи в исходных
файлах перед их добавлением в пакет установки.
- Ранее программа установки в процессе своей работы всегда запрашивала
Windows создавать все недостающие папки {usercf}, {userpf}
и {usersavedgames}. Теперь же она не будет этого делать до тех
пор, пока из сценария не поступит запрос для папки. Обратите внимание,
что сценарии, запущенные в административном режиме установки, не должны
этого делать, поскольку это нарушает соглашение об используемых
пользовательских областях.
- Предприняты дополнительные меры для предотвращения атак с предварительной
загрузкой DLL.
- Добавлена поддержка идентификаторов группы пользователей IIS (iisiusrs)
для использования в параметре Permissions.
- Изменения ISPP:
- Добавлена новая функция AddQuotes для заключения строки
в кавычки, если она содержит пробелы или ещё не была заключена в
кавычки.
- Функция Exec больше не требует, чтобы параметр имени
файла был заключен в кавычки, если строка содержит пробелы. Кроме
того, теперь функция может принимать ">" в качестве имени файла и
включает специальную поддержку .bat и .cmd файлов.
- Изменения в Pascal Scripting:
- Добавлены вспомогательные функции UTF8Encode и UTF8Decode
для кодирования строк Unicode в строки ANSI с кодировкой UTF-8 и
наоборот.
- Добавлены функции LoadStringFromLockedFile и LoadStringsFromLockedFile
для чтения строк из файла, который занят другим приложением, например,
открыт для записи в другой программе.
- Добавлен класс TNewLinkLabel, который может отображать
многострочный текст со встроенными ссылками и внутренне использует
элемент управления Windows SysLink. Пример использования см. в
сценарии CodeClasses.iss.
- TWizardForm: добавлена новая функция AdjustLinkLabelHeight.
- TDownloadPage: добавлено новое свойство ShowBaseNameInsteadOfUrl.
- Теперь возможна запись вида var S: set of AnsiChar; begin S
:= ['a', 'b']; end;. В предыдущих версиях это приводило к
ошибке несоответствия типов.
- Теперь возможна запись вида Stream.ReadBuffer(S, Length(S));,
когда S имеет тип AnsiString. В предыдущих
версиях эта команда компилировалась, но не работала во время
выполнения программы установки. То же самое относится к функциям Read,
Write и WriteBuffer. Теперь эти четыре функции
принимают строки любого типа.
- В сценарий CodeAutomation.iss добавлен пример загрузки и
распаковки архива Zip.
- тип TShellFolderID был удален, поскольку не
использовался ни одной вспомогательной функцией.
- Исправлено отображение значков в диалоге Выбор языка и
страницах мастера Выбор папки установки, Выбор папки в меню
"Пуск" и Подготовка к установке при масштабе 150% DPI и
200% DPI.
- Добавлены новые значки для примеров исполняемых файлов "MyProg" и их
сборка выполнена в Visual Studio 2022.
- Добавлен официальный перевод на Корейский язык.
- Сборка Inno Setup теперь выполняется в Delphi 11.3 Alexandria вместо
Delphi 10.3 Rio.
- Delphi-проекты Inno Setup были вновь созданы как новые чистые проекты
и добавлены в группу проектов Projects\Projects.groupproj. Это
значительно облегчает начало работы с исходным кодом Inno Setup и
внесение вклада, даже при использовании бесплатной версии Delphi
Community Edition.
- Обновление документации и исправление неточностей.
Разработка в GitHub:
благодарим Achim Stuy, ser163, Jens Geyer и Sergii Leonov за оказанное
содействие в развитии Inno Setup.
История
версий Inno Setup 6.2