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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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 | Цитировать


Цитата vk_k14m@vk:
Ты имеешь в виду файлов с одинаковым расширением »
Справку читайте:

Справка » Вкладка Указатель » В поиске вводите: MergeDuplicateFiles

Результат:
Цитата:
Возможные значения: yes или no
Значение по умолчанию: yes

Описание:
По умолчанию одинаковые файлы, указанные несколько раз сжимаются только один раз (без дупликатов). Если в инсталляторе имеется несколько идентичных файлов, в скрипте их следует в один ресурс (source file), это может уменьшить размер инсталлятора. Если вы хотите отключить это отслеживание, укажите значение директивы равным no.


Также могут быть полезными флаги, например:

solidbreak
Если непрерывное сжатие включено, этот флаг указывает компилятору завершить текущий поток сжатия и начать новый перед сжатием файла(ов) соответствующих источнику. Это позволяет программе установки быстро найти файл без необходимости вначале извлекать перед ним все остальные файлы. Может быть полезным в большом, многокомпонентном инсталляторе в том случае, если Вы считаете, что на распаковку файлов тратится слишком много времени, относящихся к компонентам, которые не были выбраны.

nocompression
Запрещает компилятору сжимать файл. Устанавливайте этот флаг для файлов, сжатие которых не принесет пользы (например, изображения в формате JPED) для того, чтобы ускорить процесс компиляции и сохранить несколько байт в полученном инсталляторе.

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


Последний раз редактировалось Nordek, 22-09-2017 в 06:21.

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

Отправлено: 03:28, 22-09-2017 | #2101



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

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


Аватара для mig73

Ветеран


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

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


vk_k14m@vk,
Цитата:
Ты имеешь в виду файлов с одинаковым расширением
Да, это и имел ввиду. Последовательно расположенные (если возможно) по типам, например сначала исполняемые *.com, *.exe, потом системные и драйверы *.sys, *.drv, а в конце текстовые *.txt, *.inf, *.ini. В WinRAR есть аналогичная последовательность в RarFiles.lst (Порядок сортировки файлов для непрерывных архивов).

Имеется недостаток. Муторно это каждый файлик прописывать, проще и быстрее сразу папкой бахнуть типа Source:"tc9.app\x64\*"; Эффект есть, но не такой чтобы ВАУ.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:59, 22-09-2017 | #2102


Ветеран


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

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


mig73, из того, что отчасти может быть существенным для непрерывных архивов WinRAR, вовсе не следует существенность того же механизма для инсталляций InnoSetup.

Вы на какую информацию по InnoSetup опираетесь в данном случае?

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


Аватара для mig73

Ветеран


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

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


Iska,
Что значит "на какую информацию"?
Когда готовил кошерную сборку Total Commander, то задался вопросом минимизации инсталера, поскольку не люблю тему с хламом и более 50 МБ. Информация есть в справке, а кое-что подбиралось опытным путём.

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


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

Старожил


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

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


Цитата Nordek:
Справка » Вкладка Указатель » В поиске вводите: MergeDuplicateFiles »
А если у меня нет дубликатов файлов? Да у меня будут файлы с одинаковым именем и расширением по одному и тому же пути при выборочной установке. Но у них будет разное содержимое. Сомневаюсь что эта опция мне нужна.

Цитата mig73:
Да, это и имел ввиду. Последовательно расположенные (если возможно) по типам, например сначала исполняемые *.com, *.exe, потом системные и драйверы *.sys, *.drv, а в конце текстовые *.txt, *.inf, *.ini. »
Я применяю lzma2 сжатие, так что аналогии с WinRAR не нужно. И да, муторно такое делать, особенно когда в установщике много компонентов. Но для сравнения попробую.

Сейчас мое тестовое приложение занимает 12 гигов, установщик 6 гигов. Тоесть сжимает всего на 50%.

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


Отправлено: 15:57, 22-09-2017 | #2105


Аватара для mig73

Ветеран


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

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


Понимаю, WinRAR просто чтоб пояснить принцип сей кутерьмы. Если хучева куча файлов, то и не заморачивайтесь, профит не особый, но работает. Для проверки можно с десяток разных типов взять и в тестовом режиме создать скрипт. Для максимального сжатия использую такие параметры
Код: Выделить весь код
;---compression---
Compression=lzma2/ultra64
InternalCompressLevel=Ultra64
SolidCompression=yes
LZMABlockSize=262144
LZMADictionarySize=312000
LZMAUseSeparateProcess=yes
LZMANumBlockThreads=4
LZMANumFastBytes=273
LZMAMatchFinder=BT
LZMAAlgorithm=1

Отправлено: 17:18, 22-09-2017 | #2106


Ветеран


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

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


Цитата mig73:
Информация есть в справке, »
Вы не могли бы сослаться на точное место в справке, где Вы почерпнули эту информацию (я не досконально знаю InnoSetup и не встречал такой информации ранее)?

Цитата mig73:
а кое-что подбиралось опытным путём. »
Не могли бы Вы описать этот путь, и каким образом Вы пришли на основании этих опытов к описанным выводам?

Цитата mig73:
SolidCompression=yes »
Навряд ли автору стоит сие пользовать: разработчик категорически не рекомендует использовать непрерывный архив для инсталляций объёмом более 100 Mb или состоящих из нескольких частей.

Отправлено: 17:46, 22-09-2017 | #2107


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

Старожил


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

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


Цитата Iska:
Навряд ли автору стоит сие пользовать: разработчик категорически не рекомендует использовать непрерывный архив для инсталляций объёмом более 100 Mb или состоящих из нескольких частей. »
Читал я про эту опцию, и тоже считаю что она мне не нужна. Тестирую инсталятор пока только с основными файлами. Весят они 12 гигов. Полный вес всех компонентов до запаковки на вскидку может достигнуть и 40 гигабайт.

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


Отправлено: 17:59, 22-09-2017 | #2108


Аватара для mig73

Ветеран


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

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


Цитата Iska:
сослаться на точное место в справке »

Цитата Iska:
Не могли бы Вы описать этот путь »
Он прост до безобразия, хоть я и почти лох в Inno Setup и большинства не знаю, но догадался реально проверить эту особенность на инсталляторе собственной сборки ТС, используя в итоге такую секцию
Секция Files

;x64 files
Source:"tc9.app\x64\*"; DestDir:"{app}"; Check: Is64BitInstallMode; BeforeInstall: AddToMemo; Flags:sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly; Components: "x64"
;x86 files
Source:"tc9.app\x86\*"; DestDir:"{app}"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly; Components: "x32"
;Common files
Source:"tc9.app\PLUGINS\*"; DestDir:"{app}\PLUGINS"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source:"tc9.app\Everything\*"; DestDir:"{app}\Everything"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion overwritereadonly
Source:"tc9.app\ARC\*"; DestDir:"{app}\ARC"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion overwritereadonly
Source:"tc9.app\UTILITY\*"; DestDir:"{app}\UTILITY"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source:"tc9.app\*"; DestDir:"{app}"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion overwritereadonly
Source:"tc9.app\Scripts\*"; DestDir:"{app}\Scripts"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source:"tc9.app\ini\*"; DestDir:"{app}\ini"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion overwritereadonly
Source:"tc9.app\LANGUAGE\*"; DestDir:"{app}\LANGUAGE"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion overwritereadonly
Source:"tc9.app\temp\*"; DestDir:"{app}\temp"; BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source:"tc9.app\XP\*"; DestDir:"{app}"; Check: FileExists(ExpandConstant('{sd}\ntldr')); BeforeInstall: AddToMemo; Flags:solidbreak sortfilesbyextension ignoreversion recursesubdirs createallsubdirs overwritereadonly

при немного другой группировке файлов, размер увеличивается на 200 Кб, чего я не желаю
Цитата Iska:
Навряд ли автору стоит сие пользовать: разработчик категорически не рекомендует »
Возможно, но я никогда не делал таких объёмных инсталляторов и кроме того, не склонен сразу категорически отказываться от возможности, которая кстати всегда работает в моём случае.

Отправлено: 18:53, 22-09-2017 | #2109


Ветеран


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

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


mig73, спасибо, Ваша мысль понятна.

Перевод, конечно, тот ещё. solid compression — уплотнённое сжатие, масло масляное? В текущей версии, кстати, никаких упоминаний про LZMA/BZIP.
Скрытый текст
Цитата:
[Setup]: SolidCompression
Valid values:
yes or no
Default value:
no

Description:
If yes, solid compression will be enabled. This causes all files to be compressed at once instead of separately. This can result a much greater overall compression ratio if your installation contains many files with common content, such as text files, especially if such common content files are grouped together within the [Files] section.

The disadvantage to using solid compression is that because all files are compressed into a single compressed stream, Setup can no longer randomly access the files. This can decrease performance. If a certain file isn't going to be extracted on the user's system, it has to decompress the data for that file anyway (into memory) before it can decompress the next file. And if, for example, there was an error while extracting a particular file and the user clicks Retry, it can't just seek to the beginning of that file's compressed data; since all files are stored in one stream, it has seek to the very beginning. If disk spanning was enabled, the user would have to re-insert disk 1.

Thus, it is not recommended that solid compression be enabled on huge installs (say, over 100 MB) or on disk-spanned installs. It is primarily designed to save download time on smaller installs distributed over the Internet.

В общем, реальная польза может быть в том случае, если используется solid+группировка файлов, похожих по содержимому (расширение же тут постольку-поскольку)+размеры файлов вмещаются в размер окна сжатия. И, действительно, это очень похоже на тот же механизм, что используется в WinRAR.

Цитата Nordek:
Также могут быть полезными флаги, например:
solidbreak
Если непрерывное сжатие включено, этот флаг указывает компилятору завершить текущий поток сжатия и начать новый перед сжатием файла(ов) соответствующих источнику. Это позволяет программе установки быстро найти файл без необходимости вначале извлекать перед ним все остальные файлы. Может быть полезным в большом, многокомпонентном инсталляторе в том случае, если Вы считаете, что на распаковку файлов тратится слишком много времени, относящихся к компонентам, которые не были выбраны. »
Кхе-кхе, не знал про данный флаг .

Отправлено: 01:03, 23-09-2017 | #2110



Компьютерный форум 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




 
Переход