Проблема Создание инсталлятора свыше 2 ГБ одним файлом

FreeArc Частями жмешь игру
Прошло уже больше года, я успешно забыл об этом форуме, сейчас прилетает пуш, что мне в лс задают вопрос, я даже не понимаю о чем речь...

Все это время пользовался smart install maker, недавно решил ещё раз попробовать inno setup и он каким-то чудом создал мне инсталлятор на 3.5 гб одним файлом. Это то, что мне нужно, но я так и не понял как это произошло, если инно не поддерживает больше 2 гб
 
Прошло уже больше года, я успешно забыл об этом форуме, сейчас прилетает пуш, что мне в лс задают вопрос, я даже не понимаю о чем речь...

Все это время пользовался smart install maker, недавно решил ещё раз попробовать inno setup и он каким-то чудом создал мне инсталлятор на 3.5 гб одним файлом. Это то, что мне нужно, но я так и не понял как это произошло, если инно не поддерживает больше 2 гб
 

Вложения

  • Снимок экрана (103).png
    Снимок экрана (103).png
    49.8 KB · Просмотры: 16
А в основном скрипте в разделе Setup: выставляешь так как выделено на примере картинка
 

Вложения

  • Снимок экрана (104).png
    Снимок экрана (104).png
    23.2 KB · Просмотры: 16
Могу ошибаться но по моему с версии 6.5.0 снято практически ограничение на размер
432.png
 
Инсталлятор одним файлом в виде EXE файла не мог, не может и не сможет быть размером более 4Gb.
А точнее 4GB - 1 byte, то есть

4GB - 1B = 2^32 - 1 bytes = 4294967295 байт.
Это фундаментальное ограничение PE формата как такового.
Более того, в память можно загрузить вообще только 2GB. Именно загрузить, не путать с alloc, если не ошибаюсь.

 
А в Inno Setup, такой же встроен архиватор 7zip? Или лучше отдельно сжимать им?
 
А в Inno Setup, такой же встроен архиватор 7zip? Или лучше отдельно сжимать им?
с версии 6.4.0 есть поддержка 7z архивов с отображением прогресса.
11.png
с версии 6.5.0 поддержка rar и чего то еще.. паролей вроде
Улучшенное извлечение архива
Теперь можно извлекать архивы с паролем, многотомные архивы и несколько дополнительных форматов архивов, таких как .zip.

Кроме того, раздел [Файлы] теперь поддерживает извлечение архивов. Писать Pascal Script для извлечения архива больше не нужно.

Всё это необязательно и не увеличивает размер Setup, если не используется.

  • Обновлены разделы [Setup] и [Files]:
    • Добавлена новая директива раздела [Setup] ArchiveExtraction для указания метода извлечения архива, используемого для новых флагов раздела [Файлы] Extractarchive (см. ниже), а также поддерживающих функций ExtractArchive и CreateExtractionPage:
      • basic (по умолчанию) — это метод, введённый в Inno Setup 6.4.0. Он поддерживает только .7z архивы, которые не защищены паролем.
      • enhanced/nopassword — это новый метод, внутренне использующий 7zxr.dll из исходного кода 7-Zip Игоря Павлова, в том виде, как есть, за исключением того, что он был перекомпилирован, подписан кодом и переименован в is7zxr.dll. По сравнению с Basic, он требует меньше памяти для архивов с крупными файлами, но увеличивает размер файла настройки. Он по-прежнему поддерживает только .7z архивы, которые не защищены паролем.
      • Расширенное использование 7zxa.dll вместо 7zxr.dll, перекомпилировано, подписано кодом и переименовано в is7zxa.dll. Он по-прежнему поддерживает только .7z архивы, но они могут быть защищены паролем.
      • полноценное использование 7z.dll вместо 7zxa.dll, перекомпилировано, подписано кодом и переименовано в is7z.dll. Он поддерживает несколько форматов архива (.7z, .zip, .rar и другие), хотя и не так много, как оригинальный 7z.dll, чтобы уменьшить размер. Кроме того, он поддерживает многотомные архивы.
      Новая тема для документации в ArchiveExtraction есть таблица, обобщающая различия между этими методами.
    • Добавлен новый флаг раздела [Файлы] Extractarchive и параметр ExtractArchivePassword, предназначенный для обеспечения бесшовной интеграции и извлечения архивов.
      • Поддерживаемые форматы архивов, помимо .7z, а также поддержка защищённых паролем и многотомных архивов зависят от упомянутой директивы ArchiveExtraction, которая не должна быть установлена на базовый.
      • Flag extractarchive должен быть комбинирован с внешними и ignoreversion флагами. Обычно он также сочетается с флагами recursesubdirs и createallsubdirs.
      • Использование солидного архива не рекомендуется; Производительность извлечения может снижаться в зависимости от размера твёрдого блока.
      • В остальном извлечение архива ведёт себя так же, как копирование внешних файлов. Например, он поддерживает автоматическую удаление извлечённых файлов и может комбинироваться с теми же другими флагами и параметрами.
      • Пример сценария:
        [Setup]ArchiveExtraction=enhanced/nopassword
        [Files]
        {tmp}\MyProg-ExtraReadmes.7z"; DestDir: "{app}"; \ Flags: external extractarchive recursesubdirs createallsubdirs ignoreversion
    • Архивное извлечение теперь учитывает состояние перенаправления файловой системы, установленное 64-битным режимом установки, флагами ввода и функцией поддержки EnableFsRedirection.
  • Обновлённые скрипты Pascal:
    • Новая функция поддержки ExtractArchive заменяет устаревший Extract7ZipArchive. ExtractArchive включает дополнительный параметр для опционального указания пароля.
    • ExtractArchive и CreateExtractionPage теперь перезаписывают файлы только для чтения, которые уже существуют в адресной папке, без запроса пользователя. Раньше это приводило к ошибке извлечения.
    • Добавлена новая функция поддержки MapArchiveExtensions, позволяющая извлекать архивы с помощью пользовательских расширений, таких как самораспакующиеся архивы.
    • Добавлена новая функция AddEx для поддержки класса TExtractionWizardPage для добавления архивов с паролем.
 
Назад
Сверху