En

JazzTeam Software Development Company

Agile Java Development

Применение инсталлятора приложений для OS Windows в разработке корпоративных решений

Введение

На одном из проектов перед нами стояла задача создания приложения для Windows, которое должно управлять пользовательскими сессиями в компьютерном клубе.
Приложение состоит из двух компонентов:

Одним из требований к продукту было обеспечить простоту установки программного обеспечения, а значит необходимо было найти решение для автоматизации процесса установки компонентов и настройке окружения.

Сложность заключалась в том, что приложение должно работать в отдельно созданной учетной записи Windows. У учетной записи не должно быть администраторских прав. Пользователь, работая под этой учетной записью, должен взаимодействовать с системой через разработанную нами “оболочку”.
Настройку учетной записи, установку и запуск службы, а также все необходимые дополнительные файлы мы поместили в инсталлятор.

Инструмент для создания инсталляторов Inno Setup

Для создания инсталлятора был выбран инструмент Inno Setup.

Inno Setup – один из самых мощных инструментов для создания инсталляторов. За 20 лет своего существования он заслужил популярность среди разработчиков ПО и “репакеров” – людей, которые модифицируют установочные файлы.

Этот инструмент поддерживает работу с реестром, выполнение дополнительных программ на любом этапе установки, и возможность использования Pascal scripting для обращения к Windows API. Хотелось бы отметить множество статей и руководств по использованию, в том числе на русском языке. И довольно активное сообщество пользователей, к которым можно обратиться за советом, посмотреть примеры, прочитать о проблемах с которыми они сталкивались и как их решали.

Скачать бесплатно стабильную версию Inno Setup Compiler можно с официального сайта. Там же можно найти FAQ и документацию на английском языке и сторонние библиотеки, упрощающие процесс создания Inno Setup Script (.iss).

Классическое приложение Inno Setup Compiler поддерживает два режима создания скрипта.

Самый простой и понятный – мастер автоматического создания скриптов.


Мастер автоматического создания скриптов Inno Setup

С помощью мастера можно создать готовый установочный файл, добавить ярлыки приложения, лицензионное соглашение, инструкцию по установке, поддержку разных языков установки. Если необходима дополнительная настройка или кастомизация страниц установки, придется поработать со скриптом.

Inno Setup Script делится на несколько секций по зонам ответственности в процессе установки.

Пример скрипта Inno setup

Большинство секций содержат строки, разделенные на параметры. Каждый параметр состоит из имени, за которым следует двоеточие, а затем значение. Если не указано иное, параметры являются необязательными, поскольку в случае отсутствия они принимают значение по умолчанию. Несколько параметров в строке разделяются точкой с запятой и могут быть перечислены в любом порядке.

Настройка окружения во время установки

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

Для создания и настройки новой учетной записи Windows была использована секция [Code]. В этой секции Inno Setup позволяет запускать Delfi-подобный код на Pascal Script. Здесь можно выполнять дополнительную настройку или дополнительные действия в зависимости от фазы установки или системных событий.


Фрагмент секции [Code] скрипта Inno Setup

В нашем случае создать учетную запись было недостаточно. Для дальнейшей настройки нужно было сразу же получить SID (секретный идентификационный номер) нового пользователя.


Фрагмент секции [Code] скрипта Inno Setup

Полученный SID мы использовали в специальной секции [Registry], которая предназначена для работы с реестром.

Мы записываем в реестр новому пользователю оболочку как shell, чтобы она загружалась автоматически вместе с профилем пользователя. Также с помощью полученного SID мы дополнительно блокируем для этого пользователя редактор реестра.

Одновременно оставляем администратору возможность настраивать и обслуживать пользовательскую машину.


Секция [Registry] скрипта Inno Setup

С помощью этой секции мы:

Флаг “uninsdeletevalue” показывает, что это значение ключа должно быть удалено вместе с программой при деинсталляции. Таким образом при удалении программы очищаются и назначенные значения ключей реестра.

Установку и запуск службы мы обеспечили в секции [Run]. Код из этой секции выполняется в конце установки. Так мы добились установки и запуска системной службы в процессе установки графического приложения.

Зеркально секции [Run] существует секция [UninstallRun]. В секции [UninstallRun] указаны команды и файлы, которые необходимо выполнить при удалении приложения. Мы использовали её для остановки и удаления службы, которая будет не нужна, если необходимо будет удалить “оболочку”.

Вывод

После того, как создан какой-то продукт, необходимо подумать о том, как передать его потребителю. В случае приложений для Windows – сделать один исполняемый файл, чтобы пользователь мог его запустить, подождать завершения установки и работать не отвлекаясь на дополнительную настройку. Современные инструменты для создания инсталляторов дают широкие возможности для того, чтобы “незаметно” для пользователя сделать все необходимые действия во время установки программы.

С помощью инсталлятора Inno Setup мы решили следующие задачи:

Дополнительные ресурсы

Ресурсы, которые очень помогли в освоении этого инструмента:

, , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *