Разработка инсталляторов. Урок 8. Хитрости организации функций и установка дополнительных компонентов.
Привет, друзья! Этим постом я продолжаю серию уроков по разработке инсталляторов. В последних двух уроках мы с вами перепаковывали "чужие" установщики, то есть создавали так называемые "репаки". Сегодня мы рассмотрим варианты установки дополнительных компонентов. Так что усложним себе задачу.
Когда нам может понадобиться установка дополнительных файлов? Первое, что может прийти в голову, так это дополнения для игр, различные примеры работы с программой, установка дополнительных языков и т.п
Открываем Advanced Installer и открываем проект нашей Program, на которой мы оттачиваем своё "мастерство" по разработке установочных пакетов с 3 урока.
Теперь предположим:
1. У нас есть папка Templates, которая должна быть установлена в папку с документами/Program. Дать возможность выбора установки.
2. Папка с темами themes, она у нас уже есть в проекте. Можно выбрать устанавливать её или нет.
3. Два файла, отвечающие за локализацию программы. Это две библиотеки - 2057.dll и 1049.dll, Английский и Русский язык соответственно. Также дать возможность выбора.
Начнём, пожалуй. Создаём папку Templates и куда нибудь поближе её ложим. В ней у нас предположительно живут шаблоны. Идём в "Файлы и папки" и создаём новую папку в папке "Мои документы". Будет создана "Новая папка". Переименовываем её в Program.
Добавляем в неё папку Templates. (Для примера я просто туда скопировал несколько файлов из Android SDK, первые попавшиеся). Вот что получаем:
Аналогично я добавил файл 1049.dll в папку с программой, так как его не было в проекте. Теперь настала очередь добавления функций. Идём во вкладку "Организация продукта" и добаяляем четыре функции.
Переименовываем их, например: Шаблоны, Темы, Русский язык и Английский язык. Добавляем описание (по желанию) и придумываем идентификатор (на английском). Также можно выбрать, будут ли эти функции включены по умолчанию.
Теперь идём опять в "Файлы и папки" и выбираем папку Templates, запускаем контекстное меню и выбираем "Переместить в функцию".
В окне выбора выбираем "Шаблоны"
Аналогично раскидываем по функциям файлы, отвечающие за язык и темами - папкой themes (точнее с папками, которые она содержит).
Как видим, функции у нас заполнились.
Возможен вариант создания вложенных функций. Например, создаём в функции "Темы" функцию "Светлая" и методом простого перетаскивания мышкой кидаем туда файлы, отвечающие за эту функцию. Например:
После сборки получился такой вот установщик:
Если мы выберем полную установку, то все компоненты будут установлены. Если же выборочную, то получим возможность их выбрать:
Возможно также сделать так, чтобы по умолчанию всегда нужно было бы выбирать устанавливаемые компоненты. То есть убрать этап выбора полной или выборочной установки. Для этого идём в "Диалоговые окна", выбираем SetupTypeDlg.
А в нём уже CustomazeDlg и другие нужные и просто перетаскиваем их мышкой на уровень выше SetupTypeDlg. А параметр SetupTypeDlg удаляем и получаем:
В результате у нас получится на один диалог меньше и человек, запустивший установщик, сразу увидит выбор компонентов.
Можно также изменить диалог так, чтобы для функций отображалось описание, внешний вид и т.п. Объеденить на одной странице выбор функций и выбор папки установки. Это всё мы рассмотрим позже в уроке, посвященном только настройки интерфейса и добавления плюшек.
На этом на сегодня всё. Спасибо за внимание и подписывайтесь, если интересно.