Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 8]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 22-10-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата Iska:
solid compression — уплотнённое сжатие »
Скрытый текст
Цитата:
SolidCompression

Допустимые значения: yes или no

Значение по умолчанию: no

Описание:
Если задано значение yes, то будет задействовано непрерывное сжатие. Это позволит сжать все файлы как один, а не по отдельности.
Такое положение может привести к значительно лучшей степени сжатия, если в инсталляторе содержится много файлов с общим содержимым, например текстовых файлов, особенно если такие общие файлы сгруппированы в секции [Files].
Недостаток непрерывного сжатия заключается в том, что все файлы сжимаются единым потоком, инсталлятор не может беспорядочно обращаться к любому из файлов. Это может снизить производительность.
Если какой-либо файл не был извлечён в системе пользователя, то для того чтоб получить доступ к этому файлу с последующим его извлечением, в любом случае сначала понадобится извлечение остального содержимого (в память). И если например, при извлечении определённого файла произошла ошибка, и пользователь нажал кнопку "Повторить", инсталлятор не сможет обратиться к файлу, так как все файлы сжаты как единый, и придётся произвести повторную попытку снова. Если включено разбиение на диски, пользователю необходимо будет повторно вставить первый диск.
В общем, не рекомендуется применять непрерывное сжатие к большим по размеру инсталляторам (скажем, более 100 МБ) или если используется разбиение на диски. В первую очередь предназначалось для экономии времени при загрузке небольших приложений, распространяемых через Интернет.


Цитата vk_k14m@vk:
А если у меня нет дубликатов файлов? »
Последовательность интересует?
Скрытый текст
Последовательность следует сверху вниз.

Например включено в инсталлятор:
Код: Выделить весь код
[Files]
Source: C:\WINDOWS\Fonts\*; DestDir: {app}\Fonts; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: C:\WINDOWS\Cursors\*; DestDir: {app}\Cursors; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: C:\WINDOWS\Help\*; DestDir: {app}\Help; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
то извлечение будет производиться сначала Fonts, затем Cursors и наконец Help.

Если:
Код: Выделить весь код
[Files]
Source: C:\WINDOWS\Help\*; DestDir: {app}\Help; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\WINDOWS\Fonts\*; DestDir: {app}\Fonts; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\WINDOWS\Cursors\*; DestDir: {app}\Cursors; Flags: ignoreversion recursesubdirs createallsubdirs
- аналогично Help, затем Fonts и наконец Cursors.

Также в таком случае:
Код: Выделить весь код
[Files]
Source: MyProg1.exe; DestDir: {app}; Flags: ignoreversion
Source: MyProg2.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\WINDOWS\Help\*; DestDir: {app}\Help; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\WINDOWS\Fonts\*; DestDir: {app}\Fonts; Flags: ignoreversion recursesubdirs createallsubdirs
- сначала MyProg1.exe, затем MyProg2.exe, Help и наконец Fonts.

Аналогично:
Код: Выделить весь код
Source: C:\WINDOWS\Fonts\*; DestDir: {app}\Fonts; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\WINDOWS\Help\*; DestDir: {app}\Help; Flags: ignoreversion recursesubdirs createallsubdirs
Source: MyProg2.exe; DestDir: {app}; Flags: ignoreversion
Source: MyProg1.exe; DestDir: {app}; Flags: ignoreversion
- сначала Fonts, затем Help, MyProg2.exe и наконец MyProg1.exe.


Лучшее сжатие интересует?
Скрытый текст
Совместно с SolidCompression используйте флаг sortfilesbyextension

Цитата:
sortfilesbyextension
Этот флаг указывает компилятору сжимать найденные файлы, отсортированные по расширению, прежде чем они будут отсортированы по имени пути. Это уменьшит размер инсталлятора, если используется совместно с директивой "Непрерывное сжатие" (SolidCompression).
Например:
Код: Выделить весь код
[Setup]
...
Compression=lzma2/ultra64
SolidCompression=true

[Files]
Source: "C:\WINDOWS\Fonts\*"; DestDir: "{app}\Fonts"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "C:\WINDOWS\Cursors\*"; DestDir: "{app}\Cursors"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

Также:
Цитата:
sortfilesbyname
Этот флаг указывает компилятору сжимать найденные файлы, отсортированные по имени, прежде чем они будут отсортированы по имени пути. Это уменьшит размер инсталлятора, если используется совместно с директивой "Непрерывное сжатие" (SolidCompression). Если также используется sortfilesbyextension, файлы сначала сортируются по расширению.
Код: Выделить весь код
[Setup]
...
Compression=lzma2/ultra64
SolidCompression=true

[Files]
Source: "C:\WINDOWS\Fonts\*"; DestDir: "{app}\Fonts"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension sortfilesbyname
Source: "C:\WINDOWS\Cursors\*"; DestDir: "{app}\Cursors"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension sortfilesbyname

Последний раз редактировалось Nordek, 23-09-2017 в 06:19. Причина: [CODE][/CODE] / .exe / : / - / Упущен флаг sortfilesbyname

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:22, 23-09-2017 | #2111



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Nordek:
SolidCompression
Допустимые значения: »
Не-не, я, слава богу, технический английский пока ещё понимаю .

А вот про это:
Цитата Nordek:
Совместно с SolidCompression используйте флаг sortfilesbyextension »
опять не знал. Давно, давно не брал я шашек в руки . Как перешёл на msi, так и «забил» на InnoSetup.

Отправлено: 05:37, 23-09-2017 | #2112


Аватара для vk_k14m@vk

Старожил


Сообщения: 342
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата Nordek:
Лучшее сжатие интересует? »
Значит если использовать SolidCompression вместе с флагом sortfilesbyextension то не нужно вручную группировать однотипные файлы? Достаточно выбрать всю папку, и тот флаг сам их отсортирует?
Так же если у меня включены компоненты, например папка "1" устанавливается в любом случае, а папки "2а" и "2b" ставятся на выбор. То к этим трем папкам нужно добавлять флаги "solidbreak". Что б сэкономить время на распаковку "2а" если ее не нужно устанавливать?

-------
Взялся отвечать, отвечай до конца!


Отправлено: 00:33, 24-09-2017 | #2113


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата vk_k14m@vk:
Значит если использовать SolidCompression вместе с флагом sortfilesbyextension то не нужно вручную группировать однотипные файлы? Достаточно выбрать всю папку, и тот флаг сам их отсортирует? »
Да, файлы будут отсортированы автоматически.

Цитата vk_k14m@vk:
Так же если у меня включены компоненты, например папка "1" устанавливается в любом случае, а папки "2а" и "2b" ставятся на выбор. То к этим трем папкам нужно добавлять флаги "solidbreak". Что б сэкономить время на распаковку "2а" если ее не нужно устанавливать? »
Имеет смысл добавить флаг solidbreak, но при этом степень сжатия будет чуть хуже.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Последний раз редактировалось Nordek, 24-09-2017 в 02:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:54, 24-09-2017 | #2114


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата vk_k14m@vk:
если у меня включены компоненты, например папка "1" устанавливается в любом случае, а папки "2а" и "2b" ставятся на выбор. То к этим трем папкам нужно добавлять флаги "solidbreak". »
К первой — не надо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:19, 24-09-2017 | #2115


Аватара для mig73

Ветеран


Сообщения: 839
Благодарности: 134

Профиль | Отправить PM | Цитировать


vk_k14m@vk,
У вас объёмный инсталлятор и совместно с SolidCompression может имеет смысл использовать флаг solidbreak.

sortfilesbyextension тоже использую, но это наверное эффективно не сработает когда в типе файла информация совсем другая. Например в drv, вовсе не бинарник, а текст.

Отправлено: 03:18, 24-09-2017 | #2116


Аватара для vk_k14m@vk

Старожил


Сообщения: 342
Благодарности: 4

Профиль | Отправить PM | Цитировать


Народ. У меня проблемы с упаковкой. Inni Setup в секции [Files] игнорирует все дальше второй строчки. Первые две запаковывает остальные пропускает. В чем может быть причина?
Скрытый текст
Код: Выделить весь код
; Этот сценарий создан с помощью Мастера Inno Setup.
; ОБРАТИТЕСЬ К СПРАВОЧНОЙ ДОКУМЕНТАЦИИ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ВСЕ ВОЗМОЖНОСТИ INNO SETUP!

#define MyAppName "Artificial Academy 2"
#define MyAppVersion "2.0.1"
#define MyAppPublisher "Illusion"
#define MyAppExeName "AA2Play.exe"

[Setup]
; Примечание: Значение AppId является уникальным идентификатором для этого приложения.
; Не используйте одно и тоже значение AppId для разных приложений.
; (Для создания нового значения GUID, выберите в меню "Инструменты" пункт "Создать GUID".)
AppId={{37EDDB6D-1F9B-474F-8FF4-57CC8277B1A7}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName=D:\Games\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=D:\Inno Setup
OutputBaseFilename=setup
SetupIconFile=D:\Inno Setup\Installer\ico.ico
WizardImageFile=D:\Inno Setup\Installer\WizardImage.bmp
WizardSmallImageFile=D:\Inno Setup\Installer\WizardSmallImage.bmp
Compression=lzma2/ultra64   
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=1536000000

[Languages]
Name: "russian"; MessagesFile: "compiler:\Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Components]
Name: "Main";                     Description: "Artificial Academy 2";           Types: full compact custom; Flags: fixed
Name: "Anticensor";               Description: "Антицензор";                     Types: custom
Name: "Anticensor\MKIII";         Description: "МКIII";                          Types: custom;              Flags: exclusive
Name: "Anticensor\MKIII\clothes"; Description: "Пак одежды для MKIII анцензора"; Types: custom;              Flags: exclusive
Name: "Anticensor\SVII";          Description: "SVII";                           Types: custom;              Flags: exclusive  
Name: "Anticensor\SVII\clothes";  Description: "Пак одежды для SVII анцензора";  Types: custom;              Flags: exclusive  
Name: "Hairstyles";               Description: "Дополнительные прически и лица"; Types: custom;                
Name: "Russification";            Description: "Русификатор";                    Types: custom;                

[Files]
Source: "D:\Inno Setup\Installer\1 Main Files\Artificial Academy 2\AA2Play.exe";                     DestDir: "{app}"; Components: Main;                            Flags: ignoreversion sortfilesbyextension 
Source: "D:\Inno Setup\Installer\1 Main Files\Artificial Academy 2\*";                               DestDir: "{app}"; Components: Main;                            Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "D:\Inno Setup\Installer\2a MKIII files and clothes\Artificial Academy 2*";                  DestDir: "{app}"; Components: Anticensor\MKIII;                Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b SVII files and clothes\Artificial Academy 2*";                   DestDir: "{app}"; Components: Anticensor\SVII;                 Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\3 Hairstyles files\Artificial Academy 2*";                          DestDir: "{app}"; Components: Hairstyles;                      Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\Main\Artificial Academy 2*";                 DestDir: "{app}"; Components: Main;                            Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\MKIII\Artificial Academy 2*";                DestDir: "{app}"; Components: Anticensor\MKIII;                Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\SVII\Artificial Academy 2*";                 DestDir: "{app}"; Components: Anticensor\SVII;                 Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\Hairstyles\Artificial Academy 2*";           DestDir: "{app}"; Components: Hairstyles;                      Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\MKIII and Hairstyles\Artificial Academy 2*"; DestDir: "{app}"; Components: Anticensor\MKIII and Hairstyles; Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
Source: "D:\Inno Setup\Installer\0 Delete after install\SVII and Hairstyles\Artificial Academy 2*";  DestDir: "{app}"; Components: Anticensor\SVII and Hairstyles;  Flags: ignoreversion recursesubdirs createallsubdirs deleteafterinstall solidbreak
; Примечание: Не используйте' флаги "ignoreversion" для общих системных файлов.

[Icons]
Name: "{group}\{#MyAppName}";                       Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}";               Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]  
Filename: "{app}\data\AA2Decrypt_fix.bat"; WorkingDir: {app}/data; Description: Упаковка папок...; Flags: waituntilterminated 

[UninstallDelete]
Name: {app}\data\*.pp; Type: files

Отправлено: 06:02, 25-09-2017 | #2117


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


vk_k14m@vk, Рабочий пример. Можете сходу проверить.
Или удалите ненужные файлы пустышки (*.txt, *.exe) из примера и распределите ваше содержимое по каталогам.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 08:22, 25-09-2017 | #2118


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Меня лично терзают смутные сомнения насчёт возможно пропущенного обратного слэша, начиная как раз после второй строчки:
Цитата:
Код: Выделить весь код
[Files]
Source: "D:\Inno Setup\Installer\1 Main Files\Artificial Academy 2\AA2Play.exe";                     DestDir: "{app}"; Components: Main;                            Flags: ignoreversion sortfilesbyextension 
Source: "D:\Inno Setup\Installer\1 Main Files\Artificial Academy 2\*";                               DestDir: "{app}"; Components: Main;                            Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "D:\Inno Setup\Installer\2a MKIII files and clothes\Artificial Academy 2*";                  DestDir: "{app}"; Components: Anticensor\MKIII;                Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\2b SVII files and clothes\Artificial Academy 2*";                   DestDir: "{app}"; Components: Anticensor\SVII;                 Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
…
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:50, 25-09-2017 | #2119


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата Iska:
насчёт возможно пропущенного обратного слэша »
Если пользователь укажет:
"C:\Folder\App Files*" то компилятор будет рекурсивно включать файлы с именем "App Files" любых расширений, а также войдут все каталоги с подкаталогами которые находились в текущем каталоге. На выходе будут извлечены файлы с таковыми именами. Также на выходе будут созданы каталоги и подкаталоги, но каталоги с подкаталогами будут пустыми.

Если пользователь укажет:
"C:\Folder\App Files\*" то компилятор рекурсивно включит всё содержимое из каталога App Files.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:52, 25-09-2017 | #2120



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход