Авторские права © 1997-2026 Jordan Russell. Все права защищены.
Смежные авторские права © 2000-2026 Martijn Laan. Все права защищены.
Условия распространения и использования смотрите в LICENSE.TXT.
Хотите получать уведомления об обновлениях? Подпишитесь на рассылку о новых выпусках Inno Setup.
Inno Setup 6.7
6.7.1 (2026-02-17)
Используете Inno Setup в коммерческих целях? Пожалуйста, купите лицензию.
Спасибо всем, кто уже приобрел лицензию! Ваша поддержка очень важна для нашего дальнейшего развития.
Общие улучшения
- Компилятор:
- При использовании WizardBackImageFile компилятор теперь также проверяет, был ли указан пользовательский стиль в директиве WizardStyleFile.
- Механизм повторных попыток компилятора теперь применяется и к первичному копированию файла E32 в создаваемый EXE.
- IDE компилятора:
- Улучшено сворачивание секций, а также целых функций и процедур в секции [Code].
- Добавлена новый параметр "Умный режим [Home]", который включен по умолчанию и позволяет выполнить переход к первому непустому символу строки, а не строго в начало.
- Добавлен баннер, который появится только в апреле 2026 и пригласит вас поделиться своими идеями или высказать свое мнение по другим предложениям. Акция продлится только один месяц.
- Программа установки:
- Улучшено перечисление значения реестра Windows PendingFileRenameOperations.
Если в секции [Files] вы используете флаг restartreplace, рекомендуется выполнить обновление.
- Элементы управления полей ввода, которые принимают пути к каталогам, теперь исключают имена файлов из своих списков автозаполнения.
- Добавлено временное решение проблемы медленного открытия папок в Windows 11 25H2
Другие изменения
- Программирование на языке Паскаль:
- Добавлено новое свойство Alignment для класса TNewStaticText. Смотрите пример в обновленном сценарии CodeClasses.iss.
- Добавлено новое свойство AutoCompleteFiles для класса TNewPathEdit. Если свойство имеет значение False (установлено по умолчанию), в список автозаполнения включаются только имена каталогов. При значении True – также имена файлов.
- Препроцессор Inno Setup:
- Разделители даты и времени в функциях GetDateTimeString и GetFileDateTimeString теперь являются необязательными и не требуют указания пустых строк.
- Добавлена новая функция EmitLanguagesSection, которая создаёт секцию [Languages] со всеми доступными официальными языковыми файлами, включая английский. Например: #expr EmitLanguagesSection.
При создании новых сценариев с помощью мастера IDE компилятора эта функция по возможности всегда будет использоваться.
- Добавлен официальный перевод на Тайский язык.
- Другие улучшения и исправления.
6.7.0 (2026-01-06)
Настройка фона мастера (цвет и изображения)
Теперь в настройках можно указать собственный цвет фона и, по желанию, также фоновое изображение. Поддерживается смешивание цвета и изображения, а также, по желанию, использование отдельного цвета фона и изображения, если активна тёмная тема.
Настройка цвета фона также поддерживается программой удаления.
Эти изменения имеют обратную совместимость: если вы не будете использовать ни одну из новых директив, то ваши инсталляторы и деинсталляторы будут выглядеть также, как и раньше.
- Для директивы WizardStyle добавлен новый модификатор excludelightcontrols. Выполняет отключение настраиваемого стиля для всех элементов управления (включая кнопки), когда активна светлая тема, за исключением случаев, когда стиль необходим для достижения прозрачности.
- Для директивы WizardStyle добавлен новый модификатор hidebevels. Позволяет скрыть все разделители (горизонтальные линии) в мастере инсталлятора и деинсталлятора, за исключением системных диалогов.
- В секции [Setup] добавлены новые директивы WizardBackColor и WizardBackColorDynamicDark для указания пользовательских цветов фона на всех страницах мастера установки и удаления, включая встроенные диалоги, такие как "Выбор языка" и другие.
Если вы установите эту директиву, но не укажите пользовательский стиль, автоматически будет активирован стиль windows11 с модификатором excludelightcontrols.
- В секции [Setup] добавлены новые директивы WizardBackImageFile и WizardBackImageFileDynamicDark для указания пользовательских изображений фона на всех страницах мастера установки, но не удаления.
Поддерживается указание нескольких файлов для получения высококачественных результатов при любых настройках DPI.
Если вы установите эту директиву, но не укажите пользовательский стиль, автоматически будет активирован стиль windows11 с модификаторами excludelightcontrols и hidebevels.
Обратите внимание, что в светлой теме стиль windows11 использует не совсем белый цвет. Чтобы изменить его на чистый белый, укажите для директивы WizardBackColor значение white.
Скриншот инсталлятора с фоновым изображением в тёмной теме при DPI 150%.
Скриншот инсталлятора с фоновым изображением в светлой теме при DPI 150%.
Скриншот диалога задач с фоновым цветом при DPI 125%.
- В секции [Setup] для директив WizardImageFile и WizardSmallImageFile теперь можно указать пустые значения, если вы хотите, чтобы фоновое изображение (или цвет) оставалось самостоятельным. Это не изменит макет мастера.
В качестве альтернативы укажите директиву WizardImageOpacity, чтобы смешать изображения мастера с изображением фона (или цвета). Можно также использовать встроенные изображения мастера.
- В секции [Setup] добавлена новая директива WizardBackImageOpacity для указания непрозрачности фонового изображения.
Это даёт возможность использовать обычное и DynamicDark фоновое изображение.
- Примеры:
; Использование раздельных изображений фона для светлой и тёмной темы
WizardBackImageFile=MyBackImage.png
WizardBackImageFileDynamicDark=MyBackImage_Dark.png
; Скрываем большое и малое изображения мастера
WizardImageFile=
WizardSmallImageFile=
; Использование одного изображения фона для светлой и тёмной темы
WizardBackImageFile=MyBackImage.png
WizardBackImageFileDynamicDark=MyBackImage.png
; Применяем прозрачность к изображению фона, чтобы оно
; хорошо смотрелось как в светлой, так и в тёмной теме
WizardBackImageOpacity=150
; Оставляем большое и малое изображения мастера, применив прозрачность,
; чтобы они равномерно сливались с изображением фона
WizardImageOpacity=150
; Использование фонового изображения в мастере установки,
; а также фонового цвета в других окнах и деинсталляторе
WizardBackImageFile=MyBackImage.png
WizardBackImageFileDynamicDark=MyBackImage.png
WizardBackColor=#ffc0cb
WizardBackColorDynamicDark=#570c22
; На страницах мастера смешиваем изображение фона и цвет
WizardBackImageOpacity=150
- Программирование на языке Паскаль: добавлена функция WizardSetBackImage для установки, обновления или удаления фонового изображения во время выполнения. Может быть использована как для инсталлятора, так для деинсталлятора.
Смотрите пример в справке, а также в сценарии CodeClasses.iss при вызове функции BackImageButtonOnClick.
Улучшения IDE компилятора
Функция автозавершения теперь быстрее работает для директив в секции [Setup], а вкладки #include стали более удобными в управлении даже в крупных проектах.
- Добавлена поддержка автозавершения в секции [Setup] для значений директив с фиксированными значениями, таких как yes/no и другими, например для директивы WizardStyle.
- IDE компилятора теперь обеспечивает открытие до 50 файлов #include вместо 20.
- Добавлен новый параметр "Не открывать новые файлы #include", отключенный по умолчанию.
При включении этой функции вновь обнаруженные при компиляции файлы #include будут закрыты, пока вы явно не откроете их вкладки, например, через меню "View".
- В меню "Правка" добавлен пункт "Перейти в файл" для перехода в файл (горячие клавиши Ctrl+F12 или Ctrl+P).
- При открытии файла, который является файлом #include для текущего главного файла сценария, с помощью пункта "Открыть" в главном меню "File", IDE предложит перейти на его вкладку вместо открытия его в качестве нового главного файла сценария.
- Комбинация Ctrl+W теперь закрывает текущую вкладку (в дополнение к Ctrl+F4), что согласуется с другими современными редакторами. Ранее Ctrl+W была назначена на команду "Отладка Uninstall" в меню "Отладка". Теперь для этого используется комбинация Alt+Q.
Улучшения в области безопасности
Рекомендуется выполнить обновление, даже если вы пока не планируете использовать новые функции и другие возможности. Мы постоянно работаем над повышением безопасности и надёжностью ваших программ установок. В этой версии:
Программа установки и деинсталляции теперь по умолчанию самостоятельно пытаются включить для своих процессов защитную функцию Windows — RedirectionGuard. Данная функция, доступная в Windows 11 и Windows 10 начиная с версии 22H2, блокирует обход NTFS-соединений и символических ссылок, созданных непривилегированными пользователями (или любыми процессами без повышенных прав), обеспечивая защиту от атак, связанных с перенаправлением путей, которые могут привести к повышению привилегий.
Для получения дополнительной информации обратитесь к справке с описанием новой директивы RedirectionGuard в секции [Setup]. Также поддерживаются новые параметры командной строки /NOREDIRECTIONGUARD и /REDIRECTIONGUARD, которые имеют приоритет над настройкой директивы RedirectionGuard.
Другие изменения
- Добавлены механизмы повторных попыток сборки программы установки, чтобы сделать процесс компиляции более устойчивым к временным проблемам доступа к файлам, например, когда антивирусное программное обеспечение или другие процессы временно блокируют выходные файлы.
- Исправлено: в Windows Server при попытке программы установки перезагрузить компьютер могло отображаться сообщение об ошибке "Невозможно перезагрузить компьютер". Это было связано с тем, что перезагрузка инициировалась из процесса без повышенных прав, что по умолчанию не допускается системой Windows Server. Теперь перезагрузка инициируется из процесса с повышенными правами, что решает проблему, при условии что установщик запрашивает повышение прав. Если для параметра PrivilegesRequired установлено значение lowest вместо admin, то ни один из процессов установки не будет повышен (если только установщик не был запущен с помощью команды "Запуск от имени администратора"), и сообщение об ошибке может по-прежнему отображаться.
- В секции [Setup] такие директивы как WizardImageBackColor и WizardBackColor теперь также принимают название цвета, например, white и black, в дополнение к текущим значениям clWhite, clBlack, #ffffff и #000000.
- Исправлено: элементы управления файлами и каталогами в программе установки должны всегда использовать порядок чтения слева направо, даже если активен язык с направлением письма справа налево, но с версии 6.5.2 это не так.
- Программирование на языке Паскаль:
- В секции [Setup] такие директивы как UsePreviousAppDir, UsePreviousGroup, UsePreviousSetupType, UsePreviousTasks и UsePreviousUserInfo теперь могут принимать логическое выражение, которое может содержать вызовы проверочных функций. Например: UsePreviousAppDir=not PortableCheck.
- Добавлены функции PathCombine, PathEndsWith, PathHasInvalidCharacters, PathIsRooted, PathNormalizeSlashes, PathSame и PathStartsWith, которые позволяют упростить обработку путей.
- Добавлен класс TNewPathEdit, потомок TNewEdit, который теперь всегда использует порядок чтения слева направо и обеспечивает автозаполнение.
Для управления файлами и каталогами вы должны использовать TNewPathEdit вместо TNewEdit, но вместо прямого применения класса рекомендуется использовать TInputFileWizardPage и TInputDirWizardPage.
- Добавлена функция RPos.
- Препроцессор Inno Setup:
- Добавлена функция Is64BitPEImage.
- Исправлено: функция SameStr теперь чувствительна к регистру символов.
- Исправлено: функция RPos теперь правильно возвращает 0 для пустых подстрок.
- Использование функции ExtractFileDir больше не вызывает появление предупреждения о RemoveBackslash.
- Из параметров директивы DisablePrecompiledFileVerifications в секции [Setup] были удалены суффиксы dll/e32/exe. Параметры setupldre32 и setuplde64 были объединены в один setupldr.
- Экспериментально: добавлена поддержка 64-разрядной версии загрузчика для программы установки путём указания для директивы UseSetupLdr в секции [Setup] значения x64.
Использование x64 не означает, что сама программу установки также будет 64-разрядной: в настоящее время программа установки всегда собирается как 32-разрядный двоичный файл x86.
Использование x64 в любом случае имеет несколько преимуществ: ваш установщик изначально представляет себя как нативный 64-разрядный исполняемый файл, а 64-разрядный загрузчик имеет включенную ASLR с высокой энтропией. Кроме того, это может помочь удовлетворить требования политики безопасности или сторонних разработчиков, которые требуют 64-разрядные установщики, даже если основная программа установки по-прежнему является 32-разрядной.
Недостатком является то, что ваш установщик больше не будет загружаться на системах под управлением Windows x86.
- Если Inno Setup ещё не установлен, программа установки снова предложит вам выбрать режим установки (для всех пользователей или только для текущего пользователя) с помощью диалогового окна, которое можно скрыть. Начиная с версии 6.1.1 этот выбор был доступен только через параметры командной строки /ALLUSERS и /CURRENTUSER.
- Другие улучшения и исправления.
Inno Setup 6.6
6.6.1 (2025-11-20)
- Изменения, связанные с применением стилей:
- Ранее при отображении любого текста RTF с применением пользовательских стилей (включая встроенные стили в тёмном оформлении) все цвета переднего плана заменялись цветом переднего плана стиля. Такое поведение было улучшено и теперь заменяются только цвета по умолчанию, а заданные пользователем сохраняются.
- Добавлена новая директива в секции [Setup] – WizardImageOpacity, с помощью которой можно указать непрозрачность изображений мастера. Она даёт возможность использовать одни и те же изображения мастера как для светлого, так и для тёмного стилей оформления. К примеру, установите значение 150 для получения частичной прозрачности. По умолчанию установлено значение полной непрозрачности.
- Теперь компилятор сохраняет одинаковые изображения мастера и изображения директив DynamicDark только один раз.
- Исправлено: был изменён прототип функции CreateCustomForm, но в документации соответствующая информация не была обновлена. Теперь это исправлено.
- Улучшение безопасности:
- В секции [Files] добавлен новый флаг notimestamp, препятствующий сохранению файла с меткой времени. Используйте этот флаг, чтобы сделать сборки воспроизводимыми, даже если вы не можете сохранить отметки времени в исходных файлах.
- Другие незначительные улучшения.
6.6.0 (2025-11-11)
Модернизация графики в инсталляторе/деинсталляторе
Программа установки и удаления теперь поддерживает тёмную тему: принудительно или автоматически.
Все эти параметры являются дополнительными, имеют обратную совместимость и НЕ увеличивают размер инсталлятора, если не используются.
- В секции [Setup] директива WizardStyle дополнена новыми параметрами:
- В секции [Setup] добавлены новые директивы DynamicDark для указания отдельных пользовательских изображений и цветов, которые специально будут использоваться в режиме dynamic при переключении на тёмную тему.
- Стиль по умолчанию можно заменить на другой файл VCL-стиля с помощью новой директивы WizardStyleFile и директивы DynamicDark.
- Например, чтобы использовать другие стили для светлой и тёмной тем, укажите соответствующие файлы стилей:
WizardStyle=modern dynamic
WizardStyleFile=MyStyleLight.vsf
WizardStyleFileDynamicDark=MyStyleDark.vsf
Скриншот инсталлятора со стилем Polar Light при DPI 150%.
Скриншот инсталлятора со стилем Polar Dark при DPI 150%.
Скриншот диалога задач со стилем Zircon при DPI 125%.
- Если активен пользовательский стиль (включая встроенную тёмную тему), все текстовые метки, за исключением метки, связанной с сообщением BeveledLabel, имеют прозрачный фон. Кроме того, программа установки и удаления использует индивидуальную реализацию диалоговых окон Windows.
- Показанный выше стиль "Polar" является встроенным и напрямую поддерживается директивой WizardStyle напрямую. Например:
WizardStyle=modern dynamic polar
- Дополнительно доступно ещё три встроенных стиля, поддерживаемых директивой WizardStyle: slate, windows11 и zircon. Стиль slate использует средне-серый цвет как для светлого, так и для тёмного оформления, windows11 является светлым аналогом встроенного тёмного стиля, а zircon – это альтернативный светлый стиль с голубыми акцентами, показанный выше. Например:
WizardStyle=modern zircon
- Добавлен модификатор includetitlebar: позволяет настраивать стили заголовков и границ. По умолчанию вместо них используется системный светлый или тёмный заголовок. Например:
WizardStyle=modern dynamic polar includetitlebar
- Добавлен модификатор excludelightbuttons: отключает стилизацию всех кнопок (включая кнопки командных ссылок, используемые в диалоговых окнах задач), когда активен светлый стиль. Например:
WizardStyle=modern dynamic windows11 excludelightbuttons
- Пользовательские стили (включая встроенный тёмный стиль) НЕ активируются, если в системе пользователя установлена высококонтрастная тема или используется новый параметр командной строки '/NOSTYLE'.
- IDE компилятора: в мастер создания нового сценария добавлена страница Wizard Style, которая позволяет выбрать стиль и увидеть его пример.
- Программирование на языке Паскаль:
- Добавлены функции IsWinDark и IsDarkInstallMode.
- Добавлены свойства StyleElements и StyleName для класса TControl. В качестве примера смотрите сценарий CodeClasses.iss, где также демонстрируется использование IsDarkInstallMode.
Изменения во внешнем виде и работе программы установки и удаления
Стандартный внешний вид и функциональность программы установки и удаления
был дополнительно модернизирован за счёт перехода на шрифт Segoe UI
и других улучшений.
- Значение директивы WizardSizePercent в секции [Setup]
теперь по умолчанию всегда равно 120,120, а не только при
использовании WizardStyle=modern. В результате, если применяется
WizardStyle=classic, размеры окон программы установки по
умолчанию теперь увеличены на 20%.
- Директива WizardSizePercent в секции [Setup] теперь
поддерживается деинсталлятором. В результате размеры окна программы
удаления по умолчанию теперь увеличены на 20%.
- Программа установки и удаления теперь сохраняют исходное соотношение
сторон своих окон после изменения масштабирования DPI. В результате окна
установки и удаления при DPI 125% и выше будут на 16% шире.
Такое поведение можно отключить, установив в секции [Setup] для
директивы WizardKeepAspectRatio значение no.
- Поддержка директивы WizardResizable в секции [Setup]
прекращена, поэтому пользователь больше не сможет изменять размеры
главного окна мастера установки.
- Теперь вместо пользовательских значков используются высококачественные.
Это касается страниц мастера "Выбор папки установки" и "Подготовка
к установке", а также диалога "Необходимо вставить следующий диск".
- Стандартный шрифт, используемый на страницах мастера установки и
удаления, был изменён с 8-point Tahoma на 9-point Segoe UI,
для единообразия с современным интерфейсом Windows.
Чтобы снова использовать шрифт 8-point Tahoma, используйте
следующие параметры:
[LangOptions]
DialogFontName=Tahoma
DialogFontSize=8
DialogFontBaseScaleHeight=13
DialogFontBaseScaleWidth=6
Если до этого использовался шрифт 9-point Segoe UI, то после
обновления вы заметите изменения в масштабировании. Чтобы использовать
предыдущее масштабирование, примените следующие параметры:
[LangOptions]
DialogFontName=Segoe UI
DialogFontSize=9
DialogFontBaseScaleHeight=13
DialogFontBaseScaleWidth=6
- Стандартный шрифт заголовков, используемый на страницах мастера
"Приветствие" и "Установка завершена", был изменён с
12-point Verdana на 14-point Segoe UI, чтобы соответствовать
современному внешнему виду.
Чтобы снова использовать шрифт 12-point Verdana, используйте
следующие параметры:
[LangOptions]
WelcomeFontName=Verdana
WelcomeFontSize=12
- Программирование на языке Паскаль:
- Добавлены функции InitializeBitmapButtonFromStockIcon и
InitializeBitmapImageFromStockIcon, которые могут использоваться
для отображения различных высококачественных системных значков во всех
версиях Windows.
В качестве примера смотрите сценарий CodeClasses.iss,
а также перечень всех доступных значков на портале Microsoft Learn.
Скриншот
примера CodeClasses.iss при DPI 125% и темном режиме.
- Изменение формы мастера для WizardSizePercent в соответствии с
системным значение масштабирования DPI или пользовательским значением
DialogFontSize теперь выполняется до вызова функции
InitializeWizard, а не после.
Если в вашем сценарии имеются элементы управления, которые должны
увеличиваться в соответствии с WizardSizePercent, и для достижения
этой цели эти элементы управления используют свойство Anchors (то
есть у них установлены значения akLeft и akRight или
akTop и akBottom), но не используют свойство
SurfaceWidth или SurfaceHeight, вам необходимо либо
начать использовать новые свойства SurfaceExtraWidth и
SurfaceExtraHeight (как показано в сценарии CodeClasses.iss)
либо перейти на использование свойств SurfaceWidth и
SurfaceHeight.
Существующий код, который выполняет назначение свойств Anchors,
из ваших сценарий может быть удалён.
- Изменён прототип функции CreateCustomForm. Также изменён класс
TSetupForm: функция FlipSizeAndCenterIfNeeded была
переименована в FlipAndCenterIfNeeded, свойство
SizeAndCenterOnShow переименовано в CenterOnShow,
а свойство KeepSizeX теперь доступно только для чтения.
Смотрите пример сценария CodeClasses.iss
с обновленными CreateCustomForm/TSetupForm.
Улучшения в области безопасности
Рекомендуется выполнить обновление, даже если вы пока не планируете
использовать новые функции и другие возможности. Мы постоянно работаем
над повышением безопасности и надёжностью ваших программ установок.
В этой версии:
- В именах временных каталогов/файлов количество случайных цифр в
системе счисления с основанием 36 было удвоено с 5 до 10 и теперь цифры
генерируются с помощью функции
CSPRNG
(BCryptGenRandom). Это сделано для защиты от атак, которые
могут зависеть от предсказуемости создаваемых имен.
- Теперь программа удаления вместо попытки повторного использования
фиксированного имени для временного каталога (обычно iu-14D2N.tmp в
предыдущих версиях) использует имя, созданное случайным образом
(is-XXXXXXXXXX-uninstall.tmp). Это в первую очередь предназначено
для обеспечения глубокой защиты. Кроме того, это изменение устраняет
проблему, не связанную с безопасностью, но которая имела место в
предыдущих версиях (хотя на практике она возникала крайне редко): если
два деинсталлятора запускались почти одновременно, один из них мог
перезаписать временный файл другого.
- В предыдущих версиях перед удалением существующего временного каталога
(обычно с именем iu-14D2N.tmp) деинсталлятор проверял атрибут
FILE_ATTRIBUTE_REPARSE_POINT, чтобы убедиться, что каталог не
является точкой повторной обработки или символической ссылкой. Однако
эта проверка имела проблему TOCTOU
— теоретически было возможно, что в интервале между проверкой и
удалением каталог мог быть изменён на точку повторной обработки или
символическую ссылку. Нам неизвестны какие-либо способы практической
эксплуатации этой уязвимости, но эта проблема потенциально актуальна
только в том случае, если другие, недоверенные пользователи, имеют доступ
записи во временный каталог, что не является обычным явлением. (До Inno
Setup 6.5, когда инсталлятор/деинсталлятор запускался под учётной записью
SYSTEM, часто использовался каталог C:\Windows\Temp с
общим доступом на запись, но начиная с Inno Setup 6.5 в Windows 11 и
обновленных системах Windows 10 вместо него используется
C:\Windows\SystemTemp.)
В настоящее время мы также работаем над тем, чтобы в будущей версии
включить функцию Windows RedirectionGuard в программе установке
и удалении.
Другие изменения
- IDE компилятора:
- Улучшен коэффициент контрастности для различных цветов
подсветки синтаксиса, особенно в темном режиме.
- Шрифт диалоговых окон обновлен с 8-point Segoe UI на 9-point
Segoe UI.
- Включена поддержка тёмного режима для меню в Windows 11 версии
25H2 (обновление 2025).
- Директива WizardImageBackColor в секции [Setup] и
три другие директивы BackColor теперь может принимать цвет в
формате #rrggbb дополнительно к формату $bbggrr.
- Программирование на языке Паскаль:
- Добавлена поддержка кнопок командных ссылок (стиль кнопок, который
используется в диалоговых окнах задач). Смотрите пример в сценарии CodeClasses.iss.
- Добавлены функции Round, Trunc, Int и
MulDiv.
- Добавлена функция StrToColor.
- Отменены изменения, сделанные в функции события CurPageChanged
с версии 6.5.0.
- Если Windows возвращает несуществующий
временный каталог, программа установки и удаления будет пытаться
создать его заново, но только при обнаружении конкретного сценария,
описанного в статье по ссылке. Начиная с версии 6.5.0, программы установки
и удаления не могли работать по этому сценарию. До версии 6.5.0 они
выбирали другой временный каталог, что также было нежелательно.
- Другие улучшения и исправления.
Inno Setup 6.5
6.5.4 (2025-09-24)
- Исправлено: использование функции события CurInstallProgressChanged приводило к ошибкам во время выполнения.
6.5.3 (2025-09-11)
- Исправлено: мастер создания нового сценария для параметра ExternalSize в секции [Files] формировал записи со случайными значениями.
6.5.2 (2025-09-10)
Модернизация графики
В программу установки и удаления добавлена поддержка изображений в формате .png, включая использование прозрачности.
- Добавлена поддержка .png файлов в секции [Setup] для директив
WizardImageFile и WizardSmallImageFile.
- Улучшена поддержка преобразования 32-разрядных файлов .bmp с прозрачностью.
- Встроенные изображения и значки мастера теперь имеют прозрачный фон, что
позволяет снова настраивать их фоновые цвета в секции [Setup] с
помощью директив WizardImageBackColor и WizardSmallImageBackColor,
которые больше не являются устаревшими.
По умолчанию значения этих директив соответствуют ранее использовавшимся
цветам, поэтому внешний вид всех изображений и значков остался неизменным.
- Программирование на языке Паскаль:
- Добавлен новый класс TPngImage.
- Добавлено новое свойство PngImage в классы TBitmapButton
и TBitmapImage.
Отмена ограничений на размер
Ограничение размера в 2 ГБ для одного файла Setup.exe и для дисковых сегментов было упразднено.
- Максимальный размер исполняемого файла установки без разделения на
диски увеличен с почти 2 ГБ до 4 ГБ, что является максимально поддерживаемым
на системах Windows.
Однако для больших файлов установки по-прежнему рекомендуется использовать
разделение на диски из-за медленного запуска, вызванного защитными механизмами
Windows, особенно если исполняемые файлы имеют цифровую подпись.
- При использовании разделения максимальный размер сегмента увеличен
с приблизительно 2 ГБ до практически неограниченного (9223 ПБ).
По умолчанию размер сегмента по прежнему составляет 2100000000,
что соответствует размеру 2 ГБ. Для обновления просто укажите в секции
[Setup] директиву DiskSliceSize со значением max.
Улучшенная загрузка и извлечение архивов
- Все функции загрузки теперь поддерживают протокол передачи данных
TLS 1.3, если он доступен. Поддержка TLS 1.0 и 1.1 была удалена во всех
версиях Windows.
- Функция извлечения архивов теперь поддерживает формат RAR5. Для этого
необходимо, чтобы для директивы ArchiveExtraction в секции
Setup было установлено значение full.
- Исправлено: использование флагов download и
extractarchive в секции [Files], которые содержат
параметр Tasks, теперь работают так, как и ожидалось.
Другие изменения
- IDE компилятора:
- Добавлены параметры "Automatically reload files"
(Автоматически перезагружать файлы) и "Allow Undo after reload"
(Разрешать отмену после перезагрузки). Оба параметра включены по умолчанию,
что соответствует большинству современных редакторов кода и улучшает
интеграцию с такими инструментами, как Claude Code.
- Добавлена поддержка тёмного режима для параметров командной строки
/cc и /wizard.
- Программирование на языке Паскаль: добавлены функции HighContrastActive
и LogFmt.
- Другие улучшения и исправления.
6.5.1 (2025-08-18)
- Загрузка теперь выполняется отдельным потоком, как и в случае с
извлечением архивов в предыдущей версии. Это обеспечивает отзывчивость
программы установки, даже если система не сообщает о ходе выполнения.
- Исправлено: использование параметра командной строки /cc
в IDE компилятора для сборки сценария приводило к ошибке.
- Незначительные улучшения.
6.5.0 (2025-08-12)
Внедрение коммерческих лицензий
За долгие годы существования Inno Setup многие пользователи неоднократно
выражали своё желание, чтобы их компании поддержали развитие проекта.
Однако корпоративные правила в большинстве случаев не позволяли оформлять
пожертвования. Введение коммерческой лицензии даёт организациям простой и
легальный способ поддержать проект.
Кроме того, многие организации предпочитают иметь официальные лицензии на
всё используемое ими программное обеспечение, поскольку это облегчает
проведение аудитов и внутренних проверок на соответствие требованиям.
Наконец, ваша поддержка в виде покупки лицензий напрямую помогает нам
улучшать и поддерживать Inno Setup.
По этим причинам мы вводим коммерческие лицензии. Если вы или ваша
организация используете Inno Setup в коммерческих целях, мы просим вас
приобрести лицензию. Ваша поддержка поможет обеспечить дальнейшее развитие
программы.
Лицензии можно приобрести на нашем сайте, в разделе заказов, где также
приведена пояснительная информация. Все коммерческие лицензии являются
бессрочными и требуют единоразовой оплаты. В них входят два года обновлений,
включая как основных, так и второстепенных версий. По истечении этого
периода ваша текущая версия останется лицензированной и будет работать
как есть.
Обработка архивов
Теперь возможна распаковка архивов, защищённых паролем, многотомных архивов
и архивов другого формата, например .zip.
Добавлена возможность распаковки архивов напрямую из секции [Files].
Теперь нет необходимости писать Pascal-код для распаковки архивов.
Использование этих функций необязательно и не увеличивают размер
программы установки, если не используются.
- Обновление секций [Setup] и [Files]:
- В секции [Setup] добавлена директива ArchiveExtraction
для указания метода извлечения архива, используемого флагом
extractarchive в секции [Files] (см. ниже) и функциями
ExtractArchive и CreateExtractionPage:
- basic (по умолчанию) – метод, впервые реализованный в Inno
Setup 6.4.0. Работает только с архивами .7z не защищённые паролем.
- enhanced/nopassword использует внешнюю библиотеку 7zxr.dll,
собранную на базе исходного кода 7-Zip (автор – Игорь Павлов) с минимальными
изменениями: добавлена цифровая подпись и файл переименован в is7zxr.dll.
По сравнению с методом basic, предлагает более эффективное
использование памяти при работе с архивами, содержащими крупные файлы, но
приводит к увеличению размера установочного пакета. Важно отметить, что
данный метод поддерживает исключительно архивы .7z без парольной защиты.
- enhanced использует библиотеку 7zxa.dll вместо 7zxr.dll. Файл
библиотеки собран заново, подписан цифровым сертификатом и переименован в
is7zxa.dll. Поддерживает только архивы .7z, включая защищённые паролем.
- full вместо библиотеки 7zxa.dll использует 7z.dll. Данная
библиотека была перекомпилирована, подписана и переименована в is7z.dll.
Поддерживает наиболее популярные форматы архивов (такие как .7z, .zip, .rar
и другие), но не все по сравнению с оригинальной 7z.dll — это было сделано
для уменьшения её размера. Кроме того, реализована поддержка многотомных
архивов.
Различия между этими методами смотрите в разделе документации "ArchiveExtraction".
- В секции [Files] добавлен флаг extractarchive и
параметр ExtractArchivePassword, предназначенный для прямой
интеграции и извлечения архивов.
- Извлечение из архива теперь учитывает состояние перенаправления файловой
системы, установленное 64-разрядным режимом установки и функцией
EnableFsRedirection.
- Программирование на языке Паскаль:
- Устаревшая функцияExtract7ZipArchive заменена на новую
ExtractArchive, в которую был добавлен дополнительный
параметр для указания пароля, если требуется.
- Теперь функции ExtractArchive и CreateExtractionPage
без предупреждения перезаписывают существующие в целевом каталоге файлы,
доступные только для чтения. Ранее это приводило к ошибке извлечения.
- Добавлена функция MapArchiveExtensions, которая позволяет
распаковывать архивы с пользовательскими расширениями, например,
самораспаковывающиеся архивы.
- Добавлена функция AddEx (класс TExtractionWizardPage)
для добавления архивов, защищенных паролем.
Загрузка файлов
Реализована встроенная поддержка загрузки файлов: теперь секция [Files]
позволяет загружать файлы напрямую, без необходимости использования Pascal
Script. Новый метод загрузки более эффективен, так как исключает создание
временных файлов, которые требовались при работе со скриптами.
Функция проверки подлинности файлов
Inno Setup теперь включает встроенную проверку подлинности ваших файлов,
которая может быть выполнена при компиляции – перед включением файлов в
установочный пакет или во время установки – перед копированием файлов в
систему пользователя.
Любой тип файла может быть подписан и проверен, а для создания подписей
не требуется сертификат от центра сертификации, что делает этот
процесс совершенно бесплатным.
Однако эти подписи не могут быть использованы для устранения предупреждения
«Неизвестный издатель», которое отображает ОС Windows при запуске программы
установки или другого EXE-файла. Для этого требуется совершенно другой тип
подписи (Authenticode), встроенной в EXE-файл с помощью инструмента
signtool.exe от Microsoft, а также цифровой сертификат, полученный
от центра сертификации.
Описание:
- Секция [ISSigKeys]:
- Секция [Files]:
- Инструмент подписи "Inno Setup Signature Tool":
- Обновлена документация:
- Прочие изменения:
Другие изменения
- IDE компилятора:
- Список с результатами поиска "Найти в файлах" теперь будет
обновлять номера строк в случае добавления или удаления строк.
- Опция "Подсвечивать вхождения текущего слова" (по умолчанию
отключена) больше не выделяет имена директив, параметров и ключевых
слов языка Паскаль. Опция "Подсвечивать вхождения текущего выделения"
(по умолчанию включена) работает в прежнем режиме.
- Повсеместная поддержка тёмного режима.
- Улучшена поддержка тем с высокой контрастностью.
- Улучшена поддержка программ чтения с экрана.
- Для директивы Encryption в секции [Setup] теперь
может быть установлено значение full, что приведёт к полному
шифрованию программы установки и потребует указание пароля при помощи
параметра командной строки /PASSWORD=.
- Максимальное значение директивы LZMANumBlockThreadsв секции
[Setup] увеличено с 32 до 256.
- Параметр Excludes в секции [Files] теперь можно
комбинировать с флагом external.
- Параметры ExternalSize, ExtraDiskSpaceRequired и
UninstallDisplaySize теперь поддерживают разделители цифр.
Пример: UninstallDisplaySize=1_073_741_824.
- Изменения в ISPP:
- Добавлена переменная __DIR__. Возвращает каталог текущего
include-файла.
- Переменная __FILE__ переименована в __FILENAME__,
а ISPPCC_INVOKED в ISCC_INVOKED. При этом поддержка
старых имён сохранена.
- Функция RemoveBackslash переименована в
RemoveBackslashUnlessRoot. Поддержка старого имени сохранена.
- Исправлено: возвращаемое значение функции ExtractFilePath
не всегда содержало обратную косую черту, как предполагалось.
- Программирование на языке Паскаль:
- Добавлен новый класс TBitmapButton, который работает также,
как TBitmapImage, но доступен для управления с клавиатуры и
совместим с программами чтения с экрана. Обязательно указывайте
свойство Caption, даже если оно не отображается. Смотрите
обновленный пример сценария CodeDownloadFiles.iss.
- Добавлены новые функции InitializeBitmapButtonFromIcon и
GetSHA256OfStream.
- Добавлено новое свойство LastBaseNameOrUrl в классе
TDownloadWizardPage. Смотрите обновленный пример сценария
"CodeClasses.iss".
- Исправлено: функция события CurPageChanged теперь
всегда срабатывает только при изменении текущей страницы. Ранее она
для wpPreparing вызывалась дважды, если сценарий содержал
функцию события PrepareToInstall, которая возвращала не
пустую строку, чтобы дать команду программе установки остановиться.
- Если есть возможность, программа установки теперь получает путь к
временному каталогу при помощи функции API GetTempPath2, которая
впервые была введена в Windows 11, а позже интегрирована в Windows 10 и
Windows Server 2016 посредством месячных обновлений. При запуске под
учётной записью SYSTEM функция GetTempPath2 возвращает частный
каталог (обычно C:\Windows\SystemTemp), что потенциально повышает
безопасность. На более старых версиях Windows или системах, которые не
были обновлены, программа установки возвращается к исходной функции API
GetTempPath. (Такое изменение делает защиту более глубокой, но
не устраняет известную уязвимость.)
- В Inno Setup 6.4.3 максимальная ширина всех диалоговых окон задач была
увеличена примерно на 50%, что помогло решить проблему сокращения длинных
строк, которые содержали путь. Теперь это происходит только в том случае,
если содержимое диалога задачи действительно содержит путь.
- Во всех официальных переводах в кодировке UTF-8, где ещё оставался
маркер BOM, он был удалён. Начиная с Inno Setup 6.3.0 использование
маркера BOM в файлах в кодировке UTF-8 больше не требуется и не
рекомендуется.
- Сборка Inno Setup теперь выполняется в Delphi 12.3 Athens вместо Delphi
12.1 Athens. Спасибо Ian Barker из Embarcadero за предоставление лицензии!
- Доработка и улучшение документации.
- Незначительные изменения.
В этой версии некоторые сообщения были удалены и добавлены новые (см.
различия в Default.isl):
- Новые сообщения:
- DownloadingLabel2, ExtractingLabel.
- ArchiveIncorrectPassword, ArchiveIsCorrupted, ArchiveUnsupportedFormat.
- RetryCancelSelectAction, RetryCancelRetry, RetryCancelCancel.
- StatusDownloadFiles.
- SourceVerificationFailed, VerificationSignatureDoesntExist,
VerificationSignatureInvalid, VerificationKeyNotFound,
VerificationFileNameIncorrect, VerificationFileTagIncorrect,
VerificationFileSizeIncorrect, VerificationFileHashIncorrect.
- ErrorDownloading, ErrorExtracting.
- Удаленные сообщения:
- ErrorFileHash1, ErrorFileHash2.
- DownloadingLabel, ExtractionLabel.
Официальная поддержка Исландского
язык была переведена в разряд неофициальных из-за отсутствия сопровождающего.
Inno Setup 6.4
6.4.3 (2025-05-03)
- Изменения в IDE компилятора: теперь имеется возможность восстанавливать
выделения при операциях отмены и повтора.
- В Inno Setup добавлен новый инструмент командной строки ISSigTool.exe.
Он предназначен для подписания файлов с помощью криптографических алгоритмов
ECDSA P-256. Компоненты Compil32, ISCC и ISCmplr используют эти подписи для
проверки ряда DLL файлов перед их загрузкой. Это "предварительный этап",
который может быть изменён (например, все подписи, которые были созданы
сейчас, могут быть созданы заново при обновлении до следующей версии).
Примечание: ISSigTool.exe никоим образом не заменяет инструмент
signtool.exe от Microsoft и вообще не имеет никакого отношения к технологии
Authenticode Code Signing.
- Исправлено: начиная с версии 6.1.1 не работала функция
автозаполнения для имен параметров в секциях [Components] и
[Dirs].
- Исправлено: сценарная функция Extract7ZipArchive,
добавленная с версии 6.4.0, на старых версиях Windows (известны случаи
на Windows 8.1 и Windows Server 2016) завершалась ошибкой с кодом
выхода 11.
- Максимальная ширина всех диалоговых окон задач была увеличена примерно
на 50 %, что позволяет избежать сокращения строк путем добавления многоточия.
Это было сделано с помощью установки флага TDF_SIZE_TO_CONTENT.
- Обновление документации.
6.4.2 (2025-03-13)
- Для секции [Setup] добавлена директива CloseApplicationsFilterExcludes.
- Сборка Inno Setup теперь выполняется в Delphi 12.1 Athens вместо
Delphi 11.3 Alexandria.
- Цифровая подпись Inno Setup выполнена с использованием нового сертификата.
6.4.1 (2025-02-12)
Изменения в IDE компилятора
- Добавлены всплывающие подсказки для всех поддерживаемых функций и членов
класса, отображающих их прототип. При этом выводятся все доступные члены
класса, а не только те, что относятся к текущему объекту.
- Списки автозавершения теперь используют такой же шрифт, что и редактор.
- Исправлено: при первом запуске IDE на системе с настройками DPI
более 100% начальный размер шрифта редактора был больше, чем ожидалось.
Другие изменения:
- Для констант {reg:...} добавлена поддержка записей значений реестра
с типом REG_DWORD.
- Исправлено: в версии 6.4.0 для параметра HotKey в
секции [Icons] не работает ключ "Shift+" и вместо него следует
указывать просто "Shift". Так, например, вместо сочетания
"Ctrl+Shift+M" необходимо указать "Ctrl+ShiftM".
- Исправлено: в версии 6.4.0 пользовательская форма, созданная
с использованием [Code], не имела кнопки на панели задач, если
окно мастера в этот момент ещё не отображалось.
- Добавлен официальный перевод на Арабский язык.
- Различные доработки и улучшения.
6.4.0 (2025-01-09)
Изменения в IDE компилятора:
Компонент редактора Scintilla, используемый в компиляторе, был обновлен
до последней версии.
Улучшено редактирование при множественном выделении:
- В меню "Edit" (Правка) добавлен новый пункт "Add Next
Occurrence" (Добавить следующее вхождение) для добавления
следующего вхождения текущего слова или выделенного текста в качестве
дополнительного выделения (Shift+Alt+. или Ctrl+D, см. ниже).
- В меню "Edit" (Правка) добавлен новый пункт "Select All
Occurrences" (Выделить все вхождения), позволяющий выделить все
вхождения текущего слова или выделенного текста (Shift+Alt+; или
Ctrl+Shift+L).
- В меню "Edit" (Правка) добавлен новый пункт "Select All Find
Matches" (Выделить все найденные вхождения), позволяющий выделить
все вхождения последнего искомого текста (Alt+Enter).
Кроме того, диалоговые окна "Найти" (Ctrl+F) и "Заменить"
(Ctrl+H) теперь поддерживают закрытие по команде Alt+Enter для
непосредственного выделения всех вхождений.
- Добавлены комбинации клавиш для перемещения курсора или выделения
вверх (Ctrl+Alt+Up) или вниз (Ctrl+Alt+Down). Для многострочных
выделений область выделения расширяется вверх или вниз и никогда не
уменьшается.
- Добавлены комбинации клавиш для добавления курсоров в концы выделенных
строк (Shift+Alt+I). Действие аналогично редактору Visual Studio Code и,
например, ничего не происходит, если выделение строк отсутствует.
- Добавлены комбинации клавиш для добавления слова или строки в качестве
дополнительного выделения (Ctrl+Двойной клик и Ctrl+Тройной клик или
Alt+Двойной клик и Alt+Тройной клик).
- Добавлена комбинация клавиш для удаления выделения по клику
(Ctrl+Клик или Alt+Клик).
- Множественное выделение теперь работает с командами навигации "Home" и
"End", а также перемещения при помощи клавиш со стрелками "Влево",
"Вправо", "Вверх", "Вниз".
- Множественное выделение теперь работает с командами удаления слов и
строк, а также с вставкой конца строки.
- Улучшена работа множественного выделения с командами копирования и
вставки.
- Теперь возможна навигация клавишами "Влево", "Вправо" и т.д. с
выделенным блоком.
- В диалогах поиска и замены, а также других инструментах из меню "Tools"
(Инструменты), которые генерируют текст сценария, улучшена работа при
наличии множественного выделения.
Другие изменения редактора:
- Добавлена поддержка комбинаций клавиш в стиле Visual Studio Code,
таких как Ctrl+D для добавления следующей строки, Ctrl+Shift+K для
удаления строки и Alt+Click для добавления дополнительного курсора
или снятия выделения.
Чтобы включить эту функцию, выберите в настройках редактора для
параметра "Keys" (Клавиши) группу "Visual Studio Code".
Обновлен раздел справки "Сочетания
клавиш и управление мышкой", в котором указаны все различия по
сравнению с классическими сочетаниями клавиш.
- Добавлены новые комбинации клавиш, доступные только в том случае, если
в редакторе активированы команды в стиле Visual Studio Code:
Shift+Alt+Down – копирование строки вниз; Ctrl+] – добавление отступа
строк; Ctrl+[ – удаление отступа строк.
- Реализованы подсказки параметров для всех поддерживаемых функций,
позволяющие получить быстрый доступ к именам параметров и типам функции,
а также порядок их объявления. Подсказки могут быть вызваны вручную,
если нажать комбинацию клавиш Ctrl+Shift+Space, или же автоматически,
используя новый параметр редактора "Invoke parameter hints
automatically" (Показывать подсказки параметров автоматически),
который по умолчанию активен.
- Добавлено автозавершение для всех поддерживаемых функций, типов,
констант и т.д. при создании кода на языке Паскаль. Существующий
параметр редактора "Invoke autocompletion automatically"
(Использовать функцию автозавершения) управляет отображением
предлагаемых вариантов автозавершения или автоматически, или только
вручную, используя комбинации клавиш Ctrl+Space или Ctrl+I.
- Добавлено автозавершение для всех поддерживаемых членов и свойств
класса при создании кода на языке Паскаль. Предлагаемый список
автозавершения отображает все доступные члены и свойства классов, а не
только те, что относятся к текущему объекту.
- Добавлена поддержка автозавершения для всех параметров функций событий
при создании кода на языке Паскаль. Список отображает все доступные
параметры, а не только те, что относятся к текущей функции.
- Добавлена поддержка автозавершения для секции [Messages].
- Добавлен новый параметр "Enable section folding"
(Включить сворачивание секций), который позволяет при редактировании
сценария временно скрывать содержимое секций. По умолчанию этот параметр
включен.
- В поле редактора слева теперь отображается история изменений,
позволяющая отслеживать сохранённые и не сохранённые изменения в
сценарии.
- Теперь по умолчанию в редакторе используется шрифт Consolas, если он
доступен, что характерно для большинства современных редакторов.
- Теперь в редакторе возможно прокручивание текста не вертикально, а
горизонтально, удерживая клавишу Shift и вращая колесико мышки.
- Команды вырезания (Ctrl+X или Shift+Delete) и копирования (Ctrl+C или
Ctrl+Insert) теперь выполняются для всей строки, если какое-либо
выделение отсутствует, что характерно для большинства современных
редакторов.
- Добавлены комбинации клавиш для перемещения выделенных строк выше или
ниже (Alt+Up и Alt+Down).
- Добавлена комбинация клавиш и соответствующий пункт в меню "Edit"
(Правка) для переключения комментирования строк (Ctrl+/).
- Добавлена комбинация клавиш и соответствующий пункт в меню "Edit"
(Правка) для перехода к парной скобке (Ctrl+Shift+\).
- Параметр "Word Wrap" (Перенос по словам) перемещён в меню "View"
(Вид) и для него добавлена комбинация клавиш (Alt+Z).
- В колонке точек останова добавлено контекстное меню, доступное по
клику правой кнопки мышки.
- Добавлена поддержка тёмной темы для списка с вариантами
автозавершения.
- Добавлен параметр "Show whitespace" (Показывать пробелы).
По умолчанию отключен.
- Улучшена подсветка скобок.
- Исправлена проблема, когда включены два параметра "Auto indent mode"
(Режим автоматического отступа) и "Allow cursor to move beyond end of
lines" (Перемещать каретку за пределы конца строк).
Другие изменения в IDE компилятора:
- Для навигации вперед и назад теперь всегда используются комбинации
клавиш Alt+Стрелка влево и Alt+Стрелка вправо, даже если были
активированы команды меню в стиле Visual Studio.
По этой причине комбинация Alt+Стрелка вправо больше не работает для
запуска автозавершения. Вместо неё следует использовать альтернативную
команду Ctrl+Space или Ctrl+I.
- Список последних файлов в меню "Files" (Файл) перемещён в
подменю пункта "Open Recent" (Последние файлы).
- В меню "Edit" (Правка) добавлен новый параметр "Use Regular
Expressions" (Использовать регулярные выражения) для включения или
отключения функции регулярных выражений при выполнении операций поиска
или замены, также добавлена комбинация клавиш (Ctrl+Alt+R или Alt+R).
Также в строку состояния добавлена панель для отображения текущего
состояния.
- В диалогах поиска и замены добавлена поддержка временного поиска в
обратном направлении при использовании комбинации клавиш Shift+Enter.
- Добавлены комбинации клавиш для выбора вкладок (Ctrl+1 ÷ Ctrl+9).
- В меню "Build" (Сборка) добавлена альтернативная комбинация
клавиш для пункта "Compile" (Компилировать) (Shift+F9 или F7).
- В меню "Tools" (Инструменты) для пункта "Options"
добавлена комбинация клавиш (Ctrl+,).
- Убрано ограничение на длину строки при вводе команды цифровой подписи
и увеличена высота элемента.
- Добавлена панель со ссылкой на историю версий Inno Setup, который
отображается для любого пользователя после каждого обновления.
- Включена поддержка тёмного режима в меню на Windows 11 24H2.
Другие изменения:
- Обновление LZMA SDK, используемого Inno Setup, до последней версии.
Это позволило увеличить скорость сжатия и распаковки LZMA и LZMA2
(соответственно на 21% и 11% в тесте с настройками по умолчанию) без
изменения степени сжатия. Требования к памяти для сжатия увеличились
примерно на 4 %. Также добавлена поддержка извлечения из архивов 7-Zip.
- Для повышения безопасности функция получения ключа и алгоритм шифрования,
используемый в Inno Setup, обновлены до PBKDF2 и XChaCha20 соответственно.
Этот код теперь встроен в Inno Setup, а используемая ранее отдельная
библиотека шифрования ISCrypt.dll больше не требуется и при обновлении
будет автоматически удалена.
- В секцию [Setup] добавлена директива EncryptionKeyDerivation,
которая позволяет изменить заданное количество итераций PBKDF2-HMAC-SHA256
на другое значение. По умолчанию используется 200000.
- Все используемые хеши MD5 и SHA-1 заменены на SHA-256. При этом их
поддержка в функциях ISPP и коде сценариев на языке Паскаль сохранена.
- Наконец-то по прошествии сравнительно долгого времени эскиз окна мастера
установки отображается на панели задач. Также при сворачивании и восстановлении
окна мастера исправлено его поведение и анимация. В рамках этих изменений
поддержка давно устаревшей директивы WindowVisible из секции
[Setup] была прекращена. Ранее эта директива использовалась для
включения градиентной заливки фона в стиле 1990-х годов. По этой же
причине была удалена поддержка объекта MainForm.
- Соотношение сторон больших и малых изображений мастера установки
(указанных в WizardImageFile и WizardSmallImageFile)
теперь при масштабировании окна установки сохраняется неизменным.
Ранее в зависимости от используемого шрифта и его размера изображения
могли быть искажены.
- Размер области для малого изображения мастера установки было увеличено
до 58×58 (при стандартном DPI и шрифте по умолчанию). В предыдущих
версиях использовался не квадратный размер 55×58 пикселей, что
приводило к небольшому искажению изображения.
- Если включено разделение на диски и программа установки не может найти
нужный файл сегмента (например, setup-2.bin) в исходном каталоге,
она больше не ищет его автоматически в каталоге с именем DISKx
на один уровень выше, где x — номер диска. Хотя это и соответствовало
старым установщикам 16-битной эпохи, такое поведение не было задокументировано.
- Мастер новых сценариев теперь устанавливает директиву UninstallDisplayIcon,
если в качестве главного исполняемого файла выбран формат .exe.
- Документация по препроцессору Inno Setup объединена с основной
документацией.
- Добавлена версия документации в тёмном стиле, которая будет
автоматически использована IDE компилятором, если в нём включен тёмный
режим.
- Программирование на языке Паскаль:
- Добавлена новая функция Extract7ZipArchive для извлечения
файлов из архива 7-Zip. Функция базируется на "7z ANSI-C Decoder"
из библиотеки LZMA SDK (автор Igor Pavlov). Для получения
дополнительной информацию об этой функции и ограничениях, связанных
с ней, смотрите соответствующий раздел
справки.
Добавлена новая функция CreateExtractionPage,
позволяющая отобразить процесс извлечения для пользователя.
- Добавлена новая функция ExecAndCaptureOutput для запуска
программы или пакетного файла с возможностью захвата данных вывода
stdout и stderr по отдельности.
- Добавлены новые функции StringJoin, StringSplit
и StringSplitEx.
- В протокол вывода добавлен вызов исключения, если при настройке
перенаправления вывода произошла ошибка (что может произойти в
довольно редких случаях). Пример сценария PowerShell.iss был
обновлен для демонстрации перехвата исключения.
- В класс TInputDirWizardPage добавлено новое свойство
NewFolderName для изменения начального значения каталога,
передаваемого на странице CreateInputDirPage.
- В класс TForm добавлены новые свойства PopupMode
и PopupParent.
- Задокументированы функции VarArrayGet и VarArraySet,
которые были доступны, но не опубликованы.
- Функция FileCopy была переименована в CopyFile.
Поддержка первоначального имени была оставлена, но мы настоятельно
рекомендуем изменить его на новое. Если вы этого не сделаете, то
компилятор выдаст предупреждение.
- Исправлена работа функции TStream.CopyFrom. Был добавлен
отсутствующий параметр BufferSize. Для него рекомендуется
использовать значение $100000.
- Ограничено протоколирование импорта функций DLL.
- Добавлена функция Debugging.
- Изменения ISPP: добавлена поддержка функций GetSHA256OfFile,
GetSHA256OfString и GetSHA256OfUnicodeString.
- Исходный
код Inno Setup был полностью реорганизован для использования с
бесплатной версией Delphi
Community Edition, что значительно должно облегчить с ним работу тем,
кто желает внести вклад в развитие и поддержку Inno Setup.
- Добавлен официальный перевод на Шведский и Тамильский языки.
- Различные доработки и улучшения.
Разработка в GitHub:
благодарим Sergii Leonov, John Stevenson и jogo- за вклад в развитии Inno
Setup.
Спасибо Neil Hodgson и Igor Pavlov за их постоянную поддержку Scintilla
и LZMA SDK!
Некоторые сообщения в этой версии были добавлены и изменены:
(различия с Default.isl.)
- Новые сообщения:
- ExtractionLabel, ButtonStopExtraction, StopExtraction, ErrorExtractionAborted, ErrorExtractionFailed.
Примечание: на текущий момент с учётом этих изменений ещё не был обновлен
официальный перевод на Исландский язык.
Inno Setup 6.3
6.3.3 (2024-07-12)
- Улучшена поддержка ASLR (Случайное Размещение Адресного Пространства).
6.3.2 (2024-06-28)
- Программирование на языке Паскаль: исправлена работа функции 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.
- Программирование на языке Паскаль:
- Функция 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. (Но, пожалуйста, не удаляйте это
сообщение из файлов перевода).
- Программирование на языке Паскаль: добавлены новые функции 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 компилятора на панели "Сообщения
компилятора", что облегчает отладку проблем. В связи с этим инструменты,
являющиеся консольными программами, теперь всегда будут запускаться
скрыто, так как их вывод перехватывается, и они ничего не будут
отображать в своем окне.
- Программирование на языке Паскаль: добавлена новая функция 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 файлов.
- Программирование на языке Паскаль:
- Добавлены вспомогательные функции 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