Изменения:
- Изменения для дополнительной защиты от потенциальных атак с предварительной загрузкой DLL, внесенные Johannes Schindelin из команды Git для Windows.
- Изменения в Pascal Scripting: Улучшенная поддержка загрузки с использованием базовой аутентификации, предоставленная Christian Beck.
- Добавлено новое свойство AddEx для класса TDownloadWizardPage.
- Добавлена новая функция SetDownloadCredentials.
- Добавлен официальный перевод на Венгерский язык.
Изменения:
- Сделаны изменения по усилению защиты от потенциальных атак с предварительной загрузкой DLL при запуске программ установки или удаления под учётной записью SYSTEM (автор Johannes Schindelin из команды Git for Windows).
- Исправлена ошибка некорректного изменения значка, указанного директивой SetupIconFile в секции [Setup], если файл значка содержит более 13 изображений. Спасибо Wilenty и Martin Prikryl за предварительное изучение проблемы.
Модернизация графики
Все обновленные значки и изображения содержат форматы более высокого разрешения (которые не были доступны ранее) и при высоких настройках масштабирования (DPI) будут выбраны автоматически. Сюда также входят форматы высокого разрешения для значка в диалоге Выбор языка установки программы установки и малого изображения программы удаления, если директива SetupIconFile не указана.
- Обновлены все значки панели инструментов IDE компилятора, а также изображения мастера помощи при создании нового сценария.
- Обновлен значок приложения по умолчанию, который используется программой установки и удаления, если в секции [Setup] не указана директива SetupIconFile. Чтобы снова использовать старый значок, укажите директиву SetupIconFile со значением compiler:SetupClassicIcon.ico.
- Директивы WizardImageFile и WizardSmallImageFile в секции [Setup] теперь по умолчанию имеют пустое значение, что заставляет программу установки использовать встроенные изображения мастера. Чтобы снова использовать старые изображения мастера, укажите директивам WizardImageFile и WizardSmallImageFile значения compiler:WizClassicImage.bmp и compiler:WizClassicSmallImage.bmp соответственно.
- Обновлено малое изображение по умолчаниию, используемое мастером деинсталляции, если в секции [Setup] не указана директива SetupIconFile. Ранее по умолчанию использовался значок приложения программы установки.
- Обновлены значки "Папка", "Группа" и "Остановить", которые используются программой установки на страницах "Выбор папки установки", "Выбор папки в меню «Пуск»" и "Подготовка к установке".
- Обновлен значок диска, используемый программой установки в диалоге "Необходимо вставить следующий диск".
- Изменения в Pascal Scripting: добавлена новая функция InitializeBitmapImageFromIcon.
Примеры скриншотов:
Для сравнения скриншоты *предыдущей* версии:
- Страницы "Выбор папки установки" и "Установка завершена" мастера установки при масштабировании 100% DPI.
- Страницы "Выбор папки установки" и "Установка завершена" мастера установки при масштабировании 175% DPI.
- Светлая и Тёмная темы IDE компилятора при масштабировании 100% DPI.
Другие изменения
- Страницы "Выбор папки установки" и "Установка завершена" мастера установки в версии 6.1.2 при масштабировании 175% DPI.
Обновление Inno Setup FAQ
- Ссылки в документах 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.
- Добавлен официальный перевод на Болгарский язык.
- Обновление документации (исправления и уточнения).
- Незначительные исправления.
Удаление QuickStart Pack
- Содержание документа Inno Setup FAQ теперь доступно на портале GitHub, где любой желающий может предложить свои вопросы, ответы и решения.
- В документ Inno Setup FAQ были добавлены обновленные версии статей, взятых из базы знаний Inno Setup, которая теперь на сайте недоступна.
- Пакет установки QuickStart был удалён из-за отсутствия дополнений.
- Теперь стандартный пакет установки Inno Setup будет предлагать выполнить загрузку библиотеки шифрования (файл ISCrypt.dll), если она отсутствует (подобно тому, как это ранее делал пакет установки QuickStart).
ИЗМЕНЕНИЯ:
- Изменения в компиляторе Inno: В меню "Файл" добавлен новый пункт "Печать... (Ctrl+P)".
- Незначительные исправления.
Обновления компилятора 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-разрядное целое число, теперь передаёт корректные значения.
- Незначительные улучшения.
Пользовательские шрифты
Теперь поддерживаются пользовательские шрифты, если программа установки запускается на системе 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.
Примечание: в настоящий момент ещё не все официальные переводы были обновлены.
ИЗМЕНЕНИЯ:
- Изменения для дальнейшей защиты инсталляторов от потенциальных атак во время предварительной загрузки DLL..
- Изменение в IDE компилятора: в меню Help добавлен новый пункт меню Inno Setup Mailing List.
- Inno Setup теперь может быть установлен при помощи Windows Package Manager.
- Прочие мелкие правки.
ИЗМЕНЕНИЯ:
- [Setup] section directives LicenseFile, InfoBeforeFile and InfoAfterFile now support objects such as images in .rtf (rich text) files.
- Added new constant: {usersavedgames}.
- Compiler IDE changes:
- The Welcome dialog is now higher and wider by default and also resizable.
- Added Dark theme support to the scrollbars (on newer versions of Windows) and the bottom tab set.
- Restart Manager changes:
- Setup now ignores attempts by the script to register Setup itself with Restart Manager for a being in use check.
- If all files are excluded by [Setup] section directive CloseApplicationsFilter, Setup now no longer calls Restart Manager's RmGetList asking it to check 0 files.
- /LOG: Now logs how many files Setup asked Restart Manager's RmGetList to check.
- Added new command line parameter /LOGCLOSEAPPLICATIONS. Instructs Setup to create extra logging when closing applications for debugging purposes.
- Fix: [Setup] section directive CloseApplicationsFilter was ignored by checks for [InstallDelete] entries.
- Windows AppLocker publisher conditions are now supported by Setup up to and including the file name level.
- Pascal Scripting change: Added new IsDotNetInstalled support function, based on code by Cristoph Nahr.
- Inno Setup Preprocessor (ISPP) change: Added new UpperCase support function.
- Fix: Event attributes for uninstall event functions now actually work.
- Minor tweaks and documentations improvements.
- Enabled HTTPS on jrsoftware.org.
ИЗМЕНЕНИЯ:
- /LOG: Теперь регистрирует режим совместимости с Windows, если он активирован пользователем.
- Добавлена новая директива в секцию [Setup]: SignToolRunMinimized.
- Директива секции [Setup] UsePreviousLanguage теперь также действует, когда диалоговое окно «Выбор языка» скрыто, поскольку программа установки, например, работает в скрытом режиме.
- Флажки, отображаемые списками (checkboxlist), теперь выглядят лучше в системах с высоким DPI.
- Изменения в IDE компилятора:
- Добавлена поддержка темных тем в панели инструментов.
- При остановке на точке останова в секции [Code] отображается новая панель «Debug Call Stack», которая содержит стек вызовов.
- Панели «Compiler Output» и «Debug Output» теперь поддерживают множественный выбор, дополнительный пункт всплывающего меню «Выбрать все» и сочетания клавиш Ctrl + C и Ctrl + A. Действие «копировать» теперь копирует только выбранные строки вместо всех строк.
- Изменения в препроцессоре Inno Setup (ISPP):
- Переменные массива, объявленные с помощью #dim, теперь могут быть инициализированы напрямую, например, как #dim MyArray [3] {1, 2, 3}.
- Добавлена вкладка встроенных переменных.
- Изменение в Pascal Scripting: Добавлены новые встроенные функции Set8087CW и Get8087CW.
- В этой версии добавлены несколько сообщений: (Посмотреть различия в Default.isl).
- PrepareToInstallNeedsRestart: Это сообщение используется на странице подготовки к установке, если требуется перезагрузка. Если сообщение не задано в переводе, программа установки будет использовать, FinishedRestartLabel и FinishedRestartMessage, как и раньше.
- ComponentsDiskSpaceGBLabel и DiskSpaceGBLabel: эти сообщения используются программой установки для отображения необходимого дискового пространства размером 1000,0 МБ или более в гигабайтах, а не в мегабайтах. Если эти сообщения не заданы в переводе, программа установки вместо этого будет использовать ComponentsDiskSpaceMBLabel и DiskSpaceMBLabel, как и раньше.
- Добавлен официальный словацкий перевод.
- Прочие мелкие правки
ИЗМЕНЕНИЯ:
Это первый стабильный релиз Inno Setup 6.
- Добавлена навая константа {sysnative}.
- Изменения в Pascal скриптах:
- Добавлены новые поддерживаемые функции WizardSelectComponents и WizardSelectTasks.
- Встроенные функции IsComponentSelected и IsTaskSelected переименованы в WizardIsComponentSelected и WizardIsTaskSelected. Старые имена функций все еще поддерживаются, но рекомендуется обновить ваши скрипты, иначе компилятор будет выдавать предупреждения.
- Небольшие косметические правки.