Авторские права © 1997-2026 Jordan Russell. Все права защищены.
Смежные авторские права © 2000-2026 Martijn Laan. Все права защищены.
Условия распространения и использования смотрите в LICENSE.TXT.
Хотите получать уведомления об обновлениях? Подпишитесь на рассылку о новых выпусках Inno Setup.
Inno Setup 6.7
6.7.3 (2026-05-26)
Используете Inno Setup в коммерческих целях? Пожалуйста, купите лицензию.
Спасибо всем, кто уже приобрел лицензию! Ваша поддержка очень важна для нашего дальнейшего развития.
- Изменения, перенесенные из Inno Setup 7:
- Улучшен обходной способ работы компонента RichEdit в среде Wine, который предотвращает длительную задержку при использовании очень больших текстов в сочетании с тёмным пользовательским стилем мастера.
- Исправлено: из соображений безопасности в примере сценария PowerShell.iss для загрузки файла powershell.exe теперь используется абсолютный путь. Если вы использовали описанный метод в своих собственных сценариях, вам следует внести аналогичные изменения.
- Препроцессор Inno Setup:
- Исправлено: восстановлена компиляция при использовании пользовательских функций без параметров (была нарушена в 6.7.2). Например: #define MyAppName() "My Program".
- Добавлена новая встроенная переменная SysPath.
6.7.2 (2026-05-18)
- Исправления, перенесенные из Inno Setup 7:
- IDE компилятора: исправлена ошибка функции автозавершения для имен, констант и директив ISPP, которая возникала после наведения курсора мыши на секцию [Code].
- IDE компилятора: при использовании регулярного выражения, соответствующего тексту нулевой длины (например, ^ или \b), функции "Найти в файлах", "Заменить все" и "Выделить все найденные вхождения" могут войти в бесконечный цикл или пропустить действительное совпадение в конце текста.
- В ISCC внесено изменение: теперь при чтении из реестра ключ Inno Setup больше не создается.
- Записи в секции [Files] с флагом extractarchive не выполняли извлечение, если первая запись в архиве не совпадала с именем извлекаемого файла.
Например, если в качестве первой записи архив содержал файл в подкаталоге (к примеру, subdir\file1.txt, за которым следовала запись file2.txt) и не использовался флаг recursesubdirs, то ни один файл не был бы извлечён, даже файл file2.txt.
- Препроцессор Inno Setup: исправлена ошибка обработки файловых имен вспомогательными функциями ReadIni, WriteIni и Is64BitPEImage при работе с другими функциями, связанными с файлами.
- Программирование на языке Паскаль: исправлены ошибки в функциях InitializeBitmapButtonFromIcon (не работала в момента появления) и InitializeBitmapImageFromIcon (перестала работать с версии 6.5.0).
- Программа установки: добавлено обходное решение реализации компонента RichEdit в среде Wine (Linux), из-за ограничений которого цвет текста документов, указанных в секции [Setup] с помощью директив LicenseFile, InfoBeforeFile и InfoAfterFile, отображался некорректно при использовании стилей.
- Другие мелкие исправления.
- IDE компилятора: добавлен баннер, который включится с июля 2026 года и сообщит о выпуске Inno Setup 7. Inno Setup 7 может быть установлен параллельно с Inno Setup 6.
6.7.1 (2026-02-17)
Общие улучшения
- Компилятор:
- При использовании 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
6.2.2 (2023-02-15)
- Сделаны изменения по усилению защиты от потенциальных атак с предварительной
загрузкой DLL (автор Johannes Schindelin из команды Git for Windows).
- Изменения в Pascal Scripting: улучшена поддержка загрузки с использованием
обычной аутентификации (автор Christian Beck).
- Добавлена новая функция AddEx для класса TDownloadWizardPage.
- Добавлена новая функция SetDownloadCredentials.
- Добавлен официальный перевод на Венгерский язык.
6.2.1 (2022-04-14)
- Сделаны изменения по усилению защиты от потенциальных атак с предварительной
загрузкой DLL при запуске программ установки или удаления под учётной записью
SYSTEM (автор Johannes Schindelin из команды Git for Windows).
- Исправлена ошибка некорректного изменения значка, указанного директивой
SetupIconFile в секции [Setup], если файл значка содержит более
13 изображений. Спасибо Wilenty и Martin Prikryl за предварительное изучение проблемы.
6.2.0 (2021-06-03)
Модернизация графики
- Обновлены все значки панели инструментов IDE компилятора, а также изображения
мастера помощи при создании нового сценария.
- Обновлен значок приложения по умолчанию, который используется программой
установки и удаления, если в секции [Setup] не указана директива SetupIconFile.
Чтобы снова использовать старый значок, укажите директиву SetupIconFile со
значением compiler:SetupClassicIcon.ico.
- Директивы WizardImageFile и WizardSmallImageFile в секции
[Setup] теперь по умолчанию имеют пустое значение, что заставляет программу
установки использовать встроенные изображения мастера. Чтобы снова использовать
старые изображения мастера, укажите директивам WizardImageFile и
WizardSmallImageFile значения compiler:WizClassicImage.bmp
и compiler:WizClassicSmallImage.bmp соответственно.
- Обновлено малое изображение по умолчаниию, используемое мастером деинсталляции,
если в секции [Setup] не указана директива SetupIconFile. Ранее по
умолчанию использовался значок приложения программы установки.
- Обновлены значки "Папка", "Группа" и "Остановить", которые используются
программой установки на страницах "Выбор папки установки",
"Выбор папки в меню «Пуск»" и "Подготовка к установке".
- Обновлен значок диска, используемый программой установки в диалоге
"Необходимо вставить следующий диск".
- Изменения в Pascal Scripting: добавлена новая функция InitializeBitmapImageFromIcon.
Все обновленные значки и изображения содержат форматы более высокого разрешения
(которые не были доступны ранее) и при высоких настройках масштабирования (DPI)
будут выбраны автоматически. Сюда также входят форматы высокого разрешения
для значка в диалоге Выбор языка установки программы установки и малого
изображения программы удаления, если директива SetupIconFile не указана.
Примеры скриншотов:
Для сравнения скриншоты *предыдущей* версии:
Другие изменения
- Ссылки в документах RTF, отображаемых директивами LicenseFile,
InfoBeforeFile и InfoAfterFile в секции [Setup], теперь
выполняются от имени исходного пользователя, если это возможно.
- В секции [Setup] добавлены новые директивы MissingMessagesWarning
и NotRecognizedMessagesWarning, которые позволяют отключить
предупреждения компилятора об отсутствующих или неизвестных сообщениях
в языковых файлах.
- Параметр /LOG: теперь действия деинсталлятора в файле отчёта регистрируются
более подробно.
- Константа {localappdata} теперь может корректно инициировать
предупреждение
об использовании пользовательских областей.
- Изменения в компиляторе Inno:
- Исправление: список автозавершения для функций события показывал
некоторые процедуры в виде функций.
- Изменения в Pascal Scripting:
- Добавлена новая функция CreateOutputMarqueeProgressPage для отображения
непрерывного (стиль Marquee) индикатора выполнения. Пример использования функции смотрите в сценарии
AllPagesExample.iss.
- Добавлены новые свойства ItemFontStyle и SubItemFontStyle
для класса TNewCheckListBox. Применение этих свойств смотрите в
примере сценария CodeClasses.iss.
- Добавлены новые функции IsMsiProductInstalled и StrToVersion.
- Добавлено новое свойство AbortedByUser для класса TDownloadWizardPage.
- Исправление: Индикатор прогресса на странице CreateDownloadPage
теперь поддерживает файлы размером более 2 Гб.
- Функции ParamCount и ParamStr больше не позволяют использовать
недокументированные внутренние параметры командной строки, применяемые программой
установки и удаления.
- Встроенный онлайн загрузчик позволяет загружать файлы с неизвестными размерами
(в случае, если сервер не передаёт такую информацию), а функция проверки хеша
теперь не зависит от регистра символов.
- Изменения в ISPP: добавлена новая функция StrToVersion.
- Добавлен официальный перевод на Болгарский язык.
- Обновление документации (исправления и уточнения).
- Незначительные исправления.
Обновление Inno Setup FAQ
- Содержание документа Inno Setup FAQ
теперь доступно на портале GitHub,
где любой желающий может предложить свои вопросы, ответы и решения.
- В документ Inno Setup FAQ были добавлены обновленные версии статей,
взятых из базы знаний Inno Setup, которая теперь на сайте недоступна.
Удаление QuickStart Pack
- Пакет установки QuickStart был удалён из-за отсутствия дополнений.
- Теперь стандартный пакет установки Inno Setup будет предлагать выполнить загрузку
библиотеки шифрования (файл ISCrypt.dll), если она отсутствует (подобно тому, как
это ранее делал пакет установки QuickStart).
Разработка в GitHub: благодарим
Sergii Leonov и Dom Gries за оказанное содействие в развитии Inno Setup.
Inno Setup 6.1
6.1.2 (2020-11-15)
- Изменения в компиляторе Inno: В меню "Файл"
добавлен новый пункт "Печать... (Ctrl+P)".
- Незначительные исправления.
6.1.1-beta (2020-10-29)
Обновления компилятора Inno
В компиляторе Inno сделаны следующие изменения:
- В меню Правка редактора Inno добавлен новый пункт "Искать
ранее (Shift+F3)", который использует направление поиска вверх.
Команда меню "Искать далее (F3)" теперь всегда использует
направление поиска вниз.
- В меню Правка редактора Inno добавлен новый пункт "Найти в
файлах... (Shift+Ctrl+F)", результаты которого отображаются в
новой вкладке "Результаты
поиска".
- Мастер создания сценария установки дополнен новой функцией создания ассоциации файлов.
- Добавлена поддержка автозавершения для констант,
функций обработки событий,
флагов, секций
и директив препроцессора
Inno Setup (ISPP).
Другие изменения
- Улучшен параметр командной строки /PORTABLE=1, принимаемый
установщиками Inno Setup, для возможности параллельной установки.
Например, чтобы быстро установить новую версию Inno Setup на рабочий
стол текущего пользователя, не затрагивая уже установленные версии,
используйте следующие параметры командной строки: /portable=1
/silent /currentuser.
- В надписях кнопок "Далее" и "Назад" программы установки и удаления
отключено отображение устаревших маркеров направлений перехода по
страницам "<" и ">".
- В справке добавлен новый раздел с описанием дополнительных клавиатурных
команд компилятора Inno, которые недоступны посредством меню.
Также в меню Справка редактора добавлен пункт "Клавиатурные
команды", открывающий данный раздел справки.
- Изменения ISPP: добавлена новая функция SaveStringToFile.
- Исправление: Вызов функций DLL, возвращающих 64-разрядное целое
число, теперь передаёт корректные значения.
- Незначительные улучшения.
Обновлены все официальные переводы с учётом последних изменений.
Благодарим всех участников за оказанное содействие и помощь.
6.1.0-beta (2020-09-13)
Пользовательские шрифты
Теперь поддерживаются пользовательские шрифты, если программа установки
запускается на системе Windows 10 версии 1803 и выше:
- Параметр FontInstall в секции [Files] может теперь
использоваться в не
административных установках. Для успешной установки шритфа
требуется Windows 10 версии 1803 или выше.
- Константа {fonts} была переименована в {commonfonts}.
Устаревшее имя всё ещё поддерживается, но рекомендуется обновить ваши
сценарии на использование новых имен, иначе компилятор выдаст
предупреждение.
- Добавлена новая константа {userfonts}. Только Windows 10
версии 1803 или выше поддерживает {userfonts}. Каталог тот же,
что и {localappdata}\Microsoft\Windows\Fonts.
- Добавлена новая константа {autofonts}, которая автоматически
сопоставляется с {commonfonts}. Если установка выполняется в
режиме не административной установки, то она сопоставляется с константой
{userfonts}. Рекомендуется обновить ваши сценарии на
использование {autofonts}, чтобы избежать ошибок в будущем.
- Обновлены все примеры сценариев на использование константы {autofonts}
вместо {fonts}.
- Изменения в Pascal Scripting: функция UnregisterFont
получила дополнительный параметр.
Обновления компилятора Inno
В компиляторе Inno сделаны следующие изменения:
- Если сценарий использует функциональность препроцессора Inno Setup
(ISPP), то теперь в редакторе автоматически будет показана
вкладка препроцессора, где вы сможете проверить результат его
работы. Эта функция может быть отключена в настройках редактора.
- Теперь редактор поддерживает автоматическое открытие файлов (до 10) #include
в дополнительных вкладках, что позволяет редактировать
и отлаживать их наряду с основным файлом сценария. Также в меню Файл
появился новый пункт Сохранить всё, с помощью которого могут быть
сохранены изменения во всех открытых файлах. Список файлов #include
обновляется после открытия основного сценария и после каждой компиляции
проекта. Эта функция может быть отключена в настройках редактора.
- Если файлы, включенные директивой #include, были изменены с
момента последней компиляции, перед запуском инсталлятора компиляция
сценария будет выполнена заново. Эта функция также работает, когда опция
автоматического открытия файлов #include отключена.
- В меню Вид добавлены новые пункты Следующая вкладка и
Предыдущая вкладка.
- В справку добавлена новая глава, поясняющая встроенные
элементы отладчика в меню Выполнить, которые можно
использовать для отладки сценария в секции [Code].
- Улучшена подсветка
пользовательских сообщений в секциях [CustomMessages] и [Messages].
- В меню "Инструменты" добавлен новый пункт меню Вставить
MsgBox для создания и вставки вызова MsgBox или TaskDialogMsgBox
в секции [Code].
- В меню Run добавлен новый пункт Шаг до выхода, с
помощью которого работа программы установки будет выполнена до конца
текущей функции и приостановлена на следующей строке.
- В диалоге приветствия добавлена кнопка Donate
(Помощь) для поддержки Inno Setup и кнопка Subscribe
(Подписка) для подписки на рассылку по электронной почте о выходе
новых выпусков Inno Setup.
- Диалог "Параметры запуска" теперь отображает список последних
используемых параметров.
Встроенная поддержка загрузки для [Code]
Код Pascal Scripting теперь поддерживает загрузку файлов и проверку хэшей
SHA-256:
- Добавлена новая функция DownloadTemporaryFile для загрузки
файлов без использования сторонних инструментов:
- Поддерживаются протоколы HTTPS (требуются не просроченные или
самоподписанные сертификаты) и HTTP.
- Автоматическая поддержка перенаправлений и параметров
прокси-сервера.
- Безопасное использование в отличии от сторонних инструментов.
- Поддерживается проверка SHA-256 хэшей загружаемых файлов.
- Поддерживается базовая аутентификация.
- Добавлена новая функция CreateDownloadPage, которая
позволяет отобразить процесс
загрузки для пользователя. Смотрите пример сценария в файле CodeDownloadFiles.iss.
- Добавлена новая функция DownloadTemporaryFileSize для
получения размера файла без его загрузки.
- Добавлены новые функции GetSHA256OfFile, GetSHA256OfString
и GetSHA256OfUnicodeString для вычисления SHA-256 хэшей.
- Изменение в поведении по умолчанию: программа установки больше
не отключается пока выполняется PrepareToInstall. Теперь
отключается только кнопка "Отмена".
Обновления Inno Setup Preprocessor (ISPP)
ISPP теперь использует 64-разрядные целые числа и имеет новые функции,
которые упрощают сравнение номеров версий:
- Тип int теперь является 64-разрядным целым числом со
знаком.
- Функция FileSize теперь поддерживает 64-разрядные размеры
файлов.
- Добавлены новые функции GetPackedVersion, PackVersionNumbers,
PackVersionComponents, ComparePackedVersion, SamePackedVersion,
UnpackVersionNumbers, UnpackVersionComponents и VersionToStr.
- Функции GetFileVersion и ParseVersion были
переименованы в GetVersionNumbersString и GetVersionComponents
соответственно. Старые имена функций всё ещё поддерживаются, но
рекомендуется обновить сценарии на использование новых, иначе компилятор
выдаст предупреждение.
Аналогичные изменения были сделаны и в Pascal Scripting:
- Добавлена новая функция FileSize64.
- Добавлены новые функции GetPackedVersion, PackVersionNumbers,
PackVersionComponents, ComparePackedVersion, SamePackedVersion,
UnpackVersionNumbers, UnpackVersionComponents, GetVersionComponents
и VersionToStr. Таким образом, ISPP и [Code] поддерживают один
и тот же список функций, связанных с обработкой версий.
Другие изменения
- Исправление: Inno Setup 6.0.5 не поддерживает Windows Vista.
- Изменения в поведении по умолчанию: директива MinVersion
в секции [Setup] по умолчанию теперь имеет значение 6.1sp1, что
не позволяет программе установки работать в Windows Vista или Windows 7
и Windows Server 2008 R2 без установленного обновления. Допускается для
параметра MinVersion указать значение 6.0, чтобы
активировать работу программы установки на системах с Windows Vista, но
использовать его крайне не рекомендуется. Это связано с тем, что Windows
Vista не поддерживает некоторые меры безопасности, принятые в программе
установки для защиты от потенциального вектора атаки при помощи
предварительной загрузки библиотек DLL. Установка для MinVersion
значения ниже 6.1 снижает уровень безопасности инсталлятора
для всех версий Windows.
- Из обозначения версии Inno Setup убран символ "(u)", так как версия
Unicode уже долгое время является единственной версией.
- Для секций [Run] и [UninstallRun] добавлен новый флаг: dontlogparameters.
Если флаг указан, то параметры командной строки программы не будут
включены в файл журнала.
- Если секция [UninstallRun] содержит записи без параметра RunOnceId,
компилятор выдаст предупреждение. Использование RunOnceId
гарантирует, что в процессе деинсталляции запись в секции [UninstallRun]
будет выполнена только один раз. Чтобы отключить предупреждение,
используйте в секции [Setup] новый параметр MissingRunOnceIdsWarning.
- В секции [Icons] добавлен новый параметр: AppUserModelToastActivatorCLSID.
Определяет для ярлыка свойство Toast Activator CLSID пользовательской
модели приложения в Windows 10. В более ранних версия Windows не
учитывается.
- Запросы программы установки на выполнение замены или сохранения
существующих файлов стали более удобными для пользователя:
- Программа установки теперь отображает более
дружелюбный диалог для замены или сохранения существующих
файлов, если указан флаг confirmoverwrite.
- Программа установки теперь отображает более
дружелюбный диалог для сохранения или замены существующих
файлов, если указан флаг promptifolder.
- Изменения в консольной версии компилятора (ISCC): предупреждения и
ошибки выделяются другим
цветом.
- Изменения в Pascal Scripting:
- Добавлена новая функция CalculateButtonWidth для класса
TSetupForm.
- Параметры ACaption и ADescription различных
функций вида Create...Page теперь поддерживают сообщения
программы установки, в которых содержатся короткие имена, подобно [name].
- Исправлено: функция WizardSelectComponents теперь
выполняет обновление размеров компонентов и необходимого дискового
пространства, если пользователь изменяет текущий выбор.
- Изменения в ISPP:
- Использование #pragma verboselevel теперь автоматически
включает подробный режим.
- Добавлены новые функции Message, Warning и Error.
- В ISPP добавлена подсветка предупреждений.
- Различные исправления в документации.
- Незначительные улучшения.
Разработка в GitHub:
Благодарим Gavin Lambert и Sergii Leonov за оказанное содействие в развитии Inno Setup.
В этой версии произошли следующие изменения в сообщениях:
(Смотрите
различия в файле Default.isl).
- Новые сообщения:
- DownloadingLabel, ButtonStopDownload, StopDownload,
ErrorDownloadAborted, ErrorDownloadFailed, ErrorDownloadSizeFailed,
ErrorFileHash1, ErrorFileHash2, ErrorProgress, ErrorFileSize.
- ExistingFileNewerSelectAction, ExistingFileNewer2,
ExistingFileNewerOverwriteExisting, ExistingFileNewerKeepExisting,
ExistingFileNewerOverwriteOrKeepAll.
- FileExistsSelectAction, FileExists2, FileExistsOverwriteExisting,
FileExistsKeepExisting, FileExistsOverwriteOrKeepAll.
- Обязательные сообщения (ранее могли отсутствовать):
- ComponentsDiskSpaceGBLabel, DiskSpaceGBLabel,
PrepareToInstallNeedsRestart.
- Удалённые сообщения:
- ExistingFileNewer, FileExists.
Примечание: в настоящий момент ещё не все официальные переводы были
обновлены.
Inno Setup 6.0
6.0.5 (2020-05-21)
- Изменения, защищающие программы установки от потенциальных атак
предварительной загрузки DLL.
- Изменения в IDE компилятора: добавлен пункт меню Список
рассылки Inno Setup в разделе "Справка".
- Inno Setup может быть установлен при помощи нового диспетчера
пакетов Windows.
- Незначительные улучшения.
6.0.4 (2020-03-12)
- Секция [Setup]: параметрам LicenseFile, InfoBeforeFile
и InfoAfterFile добавлена поддержка объектов OLE, таких как
изображения, в файлах RTF.
- Добавлена новая константа: {usersavedgames}.
- Изменения в IDE компилятора:
- Увеличен диалог приветствия и его размеры теперь могут быть
изменены.
- Добавлена поддержка тёмной темы элементам прокрутки (на новых
версиях Windows) и набору нижних вкладок.
- Изменения для механизм Restart Manager:
- Программа установки теперь игнорирует попытки сценария
зарегистрировать сам инсталлятор с помощью механизма Restart Manager
для проверки использования.
- Если в секции [Setup] параметром CloseApplicationsFilter
были исключены все файлы, программа установки больше не будет
вызывать функцию RmGetList механизма Restart Manager с запросом
проверки 0 файлов.
- /LOG: теперь регистрирует количество файлов, которые программа
установки запросила для проверки функцией RmGetList.
- Добавлен новый параметр командной строки /LOGCLOSEAPPLICATIONS.
Указывает программе установки вести дополнительную регистрацию
закрываемых приложений с целью отладки.
- Исправлено: параметр CloseApplicationsFilter в
секции [Setup] не принимался во внимание при проверке записей
[InstallDelete].
- Условия издателя Windows AppLocker теперь поддерживаются программой
установки до уровня имени файла включительно.
- Изменения в Pascal Scripting: добавлена новая функция IsDotNetInstalled,
основанная на коде Cristoph
Nahr.
- Изменения в Inno Setup Preprocessor (ISPP): добавлена новая функция UpperCase.
- Исправлено: атрибуты события для функций событий удаления
теперь действительно работают.
- Незначительные улучшения и дополнения в документации.
- Включён протокол HTTPS для jrsoftware.org.
6.0.3 (2019-10-11)
- /LOG: теперь регистрирует режим совместимости Windows, если он был
активирован пользователем.
- Добавлен новый параметр в секции [Setup]: SignToolRunMinimized.
- Параметр UsePreviousLanguage в секции [Setup] теперь имеет
эффект, если диалог "Выбор языка" не отображается, например, когда
программа установки запущена в тихом режиме.
- Чекбоксы, отображаемые списками, теперь выглядят лучше на системах с
высоким DPI.
- Изменения в IDE компилятора:
- Добавлена поддержка темной темы для панели инструментов.
- При приостановке на точке останова в секции [Code] на новой
вкладке "Стек отладочных вызовов" теперь будут показаны сообщения
стека.
- На вкладках "Компилятор" и "Отладка" теперь поддерживается
множественный выбор, а также сочетания клавиш Ctrl+C
("Копировать") и Ctrl+A ("Выделить все"). Теперь копируется
только выделенная строка вместо всех строк.
- Изменения в Inno Setup Preprocessor (ISPP):
- Переменные массива, объявленные с помощью #dim, теперь могут
быть инициализированы напрямую, например, #dim
MyArray[3] {1, 2, 3}.
- Добавлена новая предопределенная переменная: Tab.
- Изменения в Pascal Scripting: добавлены новые функции Set8087CW
и Get8087CW.
- Изменения и дополнения в сообщениях: (Смотрите
различия в файле Default.isl)
- PrepareToInstallNeedsRestart: это сообщение используется на
странице подготовки к установке, если требуется перезагрузка. Если в
переводе этого сообщения нет, то программа установки будет
использовать FinishedRestartLabel и FinishedRestartMessage, как и
раньше.
- ComponentsDiskSpaceGBLabel и DiskSpaceGBLabel: эти сообщения
используются программой установки для отображения дискового
пространства от 1000.0 Мб и выше в гигабайтах (Гб) вместо мегабайтов
(Мб). Если в переводе этих сообщений нет, то вместо них будут
использоваться ComponentsDiskSpaceMBLabel и DiskSpaceMBLabel, как и
ранее.
- Добавлен официальный перевод на Словацкий язык.
- Незначительные улучшения и косметические исправления.
Вклады через GitHub:
Благодарим Vizit0r за содействие.
6.0.2 (2019-04-26)
- Добавлена новая константа: {sysnative}.
- Изменения в Pascal Scripting:
- Добавлены новые функции WizardSelectComponents и WizardSelectTasks.
- Функции IsComponentSelected и IsTaskSelected
соответственно переименованы в WizardIsComponentSelected и
WizardIsTaskSelected. Устаревшие функции все ещё
поддерживаются, но рекомендуется обновить ваши сценарии на
использование новых. Компилятор выдаст предупреждение, если вы этого
не сделаете.
- Незначительные косметические исправления.
6.0.1-beta (2019-03-07)
- Исправлено: в версии 6.0.0 невозможно было использовать
параметр InfoAfterFile в секции [Setup].
- Изменения в Pascal Scripting:
- Исправлено: свойство Anchors добавлено всем
элементам управления для обеспечения полной поддержки WizardResizable
и WizardSizePercent.
- Обновлен пример сценария AllPagesExample.iss с
использованием всех функций Create...Page.
- Многострочный элемент управления Edit, создаваемый функцией CreateOutputMsgMemoPage,
теперь выглядит более современно.
- Добавлен официальный перевод на Немецкий язык.
- Официальные переводы на Греческий,
Венгерский
и Шотландский
языки переведены в разряд неофициальных из-за отсутствия поддержки.
Чтобы самостоятельно отправить обновление, посмотрите это
сообщение и используйте эту
форму (или портал GitHub).
Дополнительную информацию вы найдете на странице Inno
Setup Translations.
- Другие улучшения документации.
6.0.0-beta (2019-02-11)
Inno Setup 6 содержит большое количество изменений:
Административный и не административный режим
установки
Внесён ряд существенных изменений в функциональность административного и
не административного режима установки:
- Добавлены новые константы с приставкой "auto" для автоматического
сопоставления с "общей" формой. Если установка выполняется в режиме без
административной установки, то они сопоставляются с "пользовательской"
формой. Во избежание ошибок настоятельно рекомендуется обновить ваши
сценарии на использование констант с приставкой "auto" для максимальной
эффективности ваших инсталляторов. Перечень добавленных констант "auto"
следующий: {autoappdata}, {autocf}, {autocf32},
{autocf64}, {autodesktop}, {autodocs}, {autopf},
{autopf32}, {autopf64}, {autoprograms}, {autostartmenu},
{autostartup} и {autotemplates}.
- Обновлены все примеры сценариев на использование {autopf}
вместо {pf} и т.д.
- Изменения в поведении по умолчанию: константы папок
общего доступа с приставкой "common" больше не сопоставляются с формой
"user", если установка выполняется в режиме без прав администратора.
Вместо этого они возвращают запрошенный общий каталог. Перечень
затронутых констант "common" следующий: {commonappdata}, {commondesktop},
{commondocs}, {commonprograms}, {commonstartmenu},
{commonstartup} и {commontemplates}.
- Константы {pf} и {cf} были переименованы в {commonpf}
и {commoncf} соответственно. Также {pf32}
переименована в {commonpf32} и т.д. Устаревшие имена всё ещё
поддерживаются, но рекомендуется обновить ваши сценарии на использование
новых имен, иначе компилятор выдаст предупреждение.
- Константа {commonfavorites} была удалена: такого каталога в
Windows больше не существует.
- Константы {userpf}, {usercf} и {username},
а также параметр AlwaysUsePersonalGroup секции [Setup], теперь
могут корректно вызывать предупреждения об
используемых областях пользователя.
- Изменения в Pascal Scripting: удалена функция GetShellFolder.
Используйте ExpandConstant вместо неё.
- В секции [Registry] добавлено новое корневое значение HKA.
Оно эквивалентно HKLM в режиме административной установки и HKCU
в противном случае. Также поддерживаются константы {reg:...} и
HKA32/HKA64. Примечание: HKA (подобно HKCU)
следует использовать для настроек, совместимых с перемещаемыми
профилями.
- Использовать в секции [Registry] корневое значение HKCR
больше не рекомендуется. Вместо него используйте HKA с
параметром Subkey со значением "Software\Classes".
- Изменения в Pascal Scripting: добавлены константы HKA и HKEY_AUTO.
Также поддерживаются константы HKA32, HKA64, HKEY_AUTO_32
и HKEY_AUTO_64.
- Помощник создания сценариев теперь предлагает возможность выбора
административного режима установки или не административного и выводит
сценарии, которые работают в обоих режимах.
- Изменения в Pascal Scripting: добавлена новая функция IsAdminInstallMode.
- Добавлен раздел Не
административный режим установки в файле справки.
Переопределяемый режим установки
Как только вы полностью обновите ваши сценарии для поддержания как
административного, так и не административного режима установки (например,
используя новый константы "auto" и корневое значения HKA
в секции [Registry]), тогда вы сможете сделать следующее:
- Добавить в секции [Setup] параметр PrivilegesRequiredOverridesAllowed
и установить для него одно или несколько значений, которые позволят
конечному пользователю переопределить заданный по умолчанию параметр PrivilegesRequired.
Поддерживаются следующие значения переопределения: commandline
и dialog.
- commandline активирует в программе установки поддержку двух
дополнительных параметров командной строки, которые позволяют
переопределить заданный сценарием параметр PrivilegesRequired:
/ALLUSERS и /CURRENTUSER.
- dialog активирует в программе установки отображение
подавляемого диалога с выбором предпочитаемого режима установки на
основе заданного в сценарии параметра PrivilegesRequired (например, если PrivilegesRequired
имеет значение admin). Значение dialog
автоматически активирует commandline и при использовании
одного из параметров командной строки программа установки не будет
выдавать запрос.
- Добавить в секции [Setup] параметр UsePreviousPrivileges.
Если параметру задано значение yes (используется по умолчанию)
и для PrivilegesRequiredOverridesAllowed указано dialog,
то при запуске программа установки произведёт в реестре поиск
установленной версии такого
же приложения и режима, в котором оно было установлено, и далее
будет использовать этот режим установки без вопросов к пользователю.
- Помощник создания сценариев теперь предлагает задать параметры
переопределения: commandline и dialog.
- Собственный сценарий установки Inno Setup теперь также поддерживает
возможность переопределения режима установки по выбору пользователя.
Параллельные установки
Улучшена поддержка параллельных
установок:
- Два отдельных запуска установки, которые не используют один и тот же
режим, административный или не административный, больше не считаются одним
и тем же приложением. Это означает, что вы можете выполнять параллельную
установку в этих режимах, даже если инсталляторы имеют одинаковое
значение параметра AppId (или если AppId не задан, то
одно и то же значение AppName), без каких-либо побочных
эффектов, которые наблюдались в предыдущих версиях Inno Setup.
- Изменения в поведении по умолчанию: чтобы избежать дублирования
записей в апплете "Удаление или добавление программы" Панели
управления Windows в течении параллельной
установки, программа установки автоматически пометит новую запись
текстом вида "Текущий пользователь" или "64-бит", когда это будет
необходимо.
- Добавлен раздел Параллельная
установка в файле справки.
Изменяемый размер окна установки
Окно мастера установки теперь имеет изменяемый размер:
- В секции [Setup] добавлен новый параметр: WizardResizable.
Если параметру установлено значение yes, то пользователь
сможет изменить размер главного окна установки.
- В секции [Setup] добавлен новый параметр: WizardSizePercent.
Этот параметр позволяет увеличить исходный размер окна
установки/удаления без изменения размера шрифта.
- Изменения в Pascal Scripting:
- Добавлено новое свойство Anchors для всех элементов
управления, а также свойство KeepSizeY для TSetupForm,
которые обеспечивают полную поддержку параметров WizardResizable
и WizardSizePercent для всех пользовательских элементов
управления, страниц и форм TSetupForm. В качестве примера
смотрите пример сценария CodeClasses.iss. В этом примере
показаны также другие изменения, сделанные в TSetupForm.
- Добавлено новое свойство Constraints в класс TForm.
Новый современный стиль мастера установки
Окно мастера установки теперь выглядит более современно:
- В секции [Setup] добавлен новый параметр: WizardStyle. Если
параметр имеет значение modern, программа установки/удаления
будет иметь более современный вид и по умолчанию для параметра WizardResizable
будет установлено значение yes, а для параметра WizardSizePercent
значение 120,120.
- Изменения в поведении по умолчанию: ранние версии Inno Setup
также поддерживали параметр WizardStyle и, если в ваших
сценариях всё ещё используется WizardStyle=modern (этот
параметр был оставлен для обратной совместимости, но на самом деле
ничего не делал) и вы не хотите иметь обновленный современный вид, тогда
вам следует удалить эту запись или изменить её на WizardStyle=classic.
- Обновлены все примеры сценариев с использованием параметра WizardStyle=modern.
- Изменения в Pascal Scripting: добавлено новое свойство SurfaceColor
для класса TWizardPage.
Несколько элементов теперь всегда выглядят более современно, независимо
от параметра WizardStyle:
- Внешний вид диалога "Выбор языка установки" приведен в
соответствие с диалогами и сообщениями Windows 10 (пример).
- Некоторые элементы интерфейса сделаны плоскими для придания
элегантности и строгости.
Обновления IDE компилятора
Внешний вид IDE компилятора:
- Обновлены все значки панели инструментов и интерфейс IDE компилятора
сделан плоским для придания ему более современного вида.
- Интерфейс IDE компилятора теперь поддерживает три темы: Светлая (пример),
Тёмную (пример) и
Классическую (пример). По
умолчанию используется новая тема Светлая. Если программа запущена на
Windows 10, в которой установлен темный режим, то по умолчанию будет
использоваться Тёмная тема. Активная тема может быть изменена в
настройках компилятора.
- Интерфейс IDE компилятора теперь использует режим адаптации к
мониторам с высокой плотностью пикселей (точек на дюйм, DPI) и позволяет
использовать шрифт "Segoe UI" для своих элементов интерфейса.
- Вкладка "Компиляция" получила отключаемую в настройках опцию цветовой
подсветки строк сообщений компилятора.
- Вкладка "Отладка" теперь использует выделенный текст для любых записей
ввода, таких как '-- File entry --'.
- Функция "Связать файлы .iss с этим компилятором" теперь может
выполнить ассоциацию для текущего пользователя вместо сообщения об
ошибке, если отсутствуют права администратора.
- Опция "Разрешить операцию отмены после сохранения" и "Показывать
границы табуляции" теперь включены по умолчанию для всех новых
установок.
- Окно "Конфигурация цифровой подписи"
теперь шире и его размер может быть изменён.
Другие изменения
- Изменения в требованиях к операционной системе: Windows 2000,
XP и Server 2003 больше не поддерживаются. Windows Vista является
минимальной версией поддерживаемой операционной системы.
- Изменения в поведении по умолчанию: начиная с Inno Setup 6
доступной будет только одна версия: Unicode Inno Setup. Unicode Inno
Setup выпускается уже в течении 9 лет, и если вы ещё не начали её
использование, то ознакомьтесь с разделом справки Unicode
Inno Setup. По сути, если вы не используете секцию [Code] для
вызова различных DLL со строковыми параметрами, вам не нужно вносить
какие-либо изменения в ваши сценарии.
- Добавлена поддержка 64-бит режима в Windows 10 для архитектуры ARM,
которую можно использовать для установки двоичных файлов ARM64. Смотрите
пример сценария 64BitThreeArch.iss, который показывает
возможность установки программы, созданную для трех различных архитектур
(x86, x64, ARM64), с использованием одного инсталлятора.
- Диалоги программы установки "Прервать/Повторить/Пропустить" заменены
на диалоги задач. Такие диалоги гораздо удобнее и практичнее по
сравнению с обычными диалогами, которые используют простые окна
сообщений (внешний вид: диалог
задач против окно
сообщения).
- В секции [Setup] добавлен новый параметр VersionInfoOriginalFileName,
который позволяет задать исходное имя файла.
- Параметр Permissions, поддерживаемый записями секций
[Files], [Dirs] и [Registry], теперь позволяет предоставлять разрешение
группе "Гости", учётной записи локальной службы, учётной записи сетевой
службы и владельцу-создателю.
- Добавлено новое специальное сообщение HelpTextNote, которое
можно использовать для указания особого текста. При компиляции сценария
этот текст добавляется в список параметров командной строки, который
отображается при передаче программе установки параметра /HELP. По
умолчанию это сообщение содержит пустую строку, поэтому, если вы хотите
его задействовать, обязательно укажите желаемое значение, которое по
умолчанию будет использовано для всех языков.
- Компилятор теперь поддерживает файлы .isl в кодировке UTF-8 без
специального расширения. Но переводчики все равно всегда должны
указывать соответствующий LanguageCodePage, когда это
возможно.
- Теперь компилятор будет выдавать ошибку, если в команде Sign Tool
отсутствует последовательность $f.
- Исправлено: компилятор теперь проверяет параметры OutputBaseFileName
и OutputManifestFile на наличие некорректных символов, даже
если для Output указано значение no.
- /LOG: теперь регистрирует некоторую дополнительную информацию о работе
Restart Manager.
- Изменения в Pascal Scripting:
- Добавлены атрибуты события, которые дают возможность нескольких
реализаций одной и той же функции. Особенно это полезно и при
использовании подключаемых сценариев, где уже существует функция,
объявленная в основном сценарии. Функция события поможет избежать
конфликтов и переделки сценария. Более подробную информацию смотрите
в справке, а пример использования в файле CodeExample1.iss.
- Добавлены новые функции TaskDialogMsgBox и SuppressibleTaskDialogMsgBox,
которые показывают сообщение, используя диалог задач (пример).
Более подробную информацию смотрите в справке, а пример
использования в файле CodeClasses.iss.
- Добавлена новая функция CreateCallback, которая
позволяет выполнять прямое обращение из функций DLL (подобно
функциям Windows API) к функциям сценария. Смотрите файл справки и
пример сценария CodeDll.iss.
- В секции [Setup] для параметров ChangesAssociations и ChangesEnvironment
теперь может быть установлено логическое выражение, которое может
содержать обращения к функциям проверки.
- Многие свойства, которые не поддерживались при наведении мышки из
IDE компилятора, теперь работают.
- Поведение объектов MainForm, WizardForm и UninstallProgressForm
больше не создает внутренней ошибки, если вы пытаетесь получить к
ним доступ до создания форм. Чтобы получить старое поведение,
используйте новые функции GetMainForm, GetWizardForm
и GetUninstallProgressForm.
- Классу TPanel добавлено свойство BevelKind, а
классу TRichEditViewer свойства BevelKind и BorderStyle,
которые позволяют активировать плоский стиль интерфейса для этих
элементов. Смотрите пример в файле CodeClasses.iss.
- Добавлены новые функции SameStr и SameText.
- Функция IsAdminLoggedOn переименована в IsAdmin.
Устаревшее имя всё ещё поддерживается, но рекомендуется обновить
ваши сценарии на использование нового имени, иначе компилятор выдаст
предупреждение. Также рассмотрите возможность использования IsAdminInstallMode.
- Удалён класс TAlphaBitmap. Его функциональность теперь
предоставляется непосредственно классом TBitmap.
- Исправлено: в Windows 10 на архитектуре ARM функция IsWin64
теперь корректно возвращает значение True, а функция ProcessorArchitecture
– значение paARM64.
- Изменения в Inno Setup Preprocessor (ISPP):
- Inno Setup Preprocessor теперь устанавливается всегда.
- Добавлена новая предопределенная переменная:
NewLine.
- Добавлены новые функции: IsWin64, SameStr и SameText.
- Добавлен новый пример сценария AllPagesExample.iss,
демонстрирующий все страницы, которые потенциально могут быть
использованы в мастере установки.
- Вся документация, относящаяся к группе Power Users (Опытные
пользователи), удалена: эта группа больше не является
специальной в Windows.
- Другие улучшения документации и примеров.
- Добавлен официальный перевод на Исландский язык.
- Среда разработки Inno Setup обновлена с Delphi 2009 на Delphi 10.3
Rio. Это изменение увеличивает размер программы установки, но уменьшает
время разработки, тестирования и развертывания. Это также упрощает
компиляцию Inno Setup, используя бесплатную Delphi Community
Edition.
- Незначительные исправления.
Вклады через GitHub:
Благодарим jogo-, Martin Prikryl, dscharrer, Kleuter, Gavin Lambert,
Stefán Örvar Sigmundsson, DRON, Kevin Puetz и Sherlock Software за
содействие.
Изменения и дополнения в сообщениях: (Смотрите
различия в файле Default.isl)
- Новые сообщения: AbortRetryIgnoreSelectAction,
AbortRetryIgnoreRetry, AbortRetryIgnoreIgnore, AbortRetryIgnoreCancel,
ExistingFileReadOnly2, ExistingFileReadOnlyRetry,
ExistingFileReadOnlyKeepExisting,
FileAbortRetryIgnoreIgnoreNotRecommended,
FileAbortRetryIgnoreSkipNotRecommended, PrivilegesRequiredOverrideTitle,
PrivilegesRequiredOverrideInstruction, PrivilegesRequiredOverrideText1,
PrivilegesRequiredOverrideText2, PrivilegesRequiredOverrideAllUsers,
PrivilegesRequiredOverrideAllUsersRecommended,
PrivilegesRequiredOverrideCurrentUser,
PrivilegesRequiredOverrideCurrentUserRecommended,
UninstallDisplayNameMark, UninstallDisplayNameMarks,
UninstallDisplayNameMark32Bit, UninstallDisplayNameMark64Bit,
UninstallDisplayNameMarkAllUsers, UninstallDisplayNameCurrentUser.
- Изменённое сообщение: SelectLanguageLabel.
- Удалённые сообщения: EntryAbortRetryIgnore,
ExistingFileReadOnly, ExistingFileReadOnlyAbortRetryIgnore,
FileAbortRetryIgnore, FileAbortRetryIgnore2, MissingWOW64APIs.
Примечание: на данный момент не все официальные переводы были обновлены.
Официальные переводы на Немецкий,
Непальский,
Сербский
(Cyrillic) и Сербский
(Latin) языки переведены в разряд неофициальных из-за отсутствия
поддержки. Чтобы самостоятельно отправить обновление, посмотрите это
сообщение и используйте эту
форму (или портал GitHub).
Дополнительную информацию вы найдете на странице Inno
Setup Translations.
История версий
Inno Setup 5.6