часть 3
- Путеводитель по системам для создания инсталляторов, часть 1
- Путеводитель по системам для создания инсталляторов, часть 2
InstallShield 2014
InstallShield предоставляет собой среду для настройки проекта, создания сценария и конечного релиза дистрибутива — как в MSI-, так и в различных виртуальных форматах. Это одно из наиболее известных решений в области создания инсталляторов для платформы Windows. Существует три редакции комплекса — Express, Professional и Premier. Последняя из них считается наиболее функциональной (см. сравнение версий). Не так давно был выпущен обновленный пакет InstallShield 2014, о котором далее пойдет речь.
Проекты могут быть импортированы из Microsoft Visual Studio или созданы на основе имеющихся шаблонов. При создании проекта с нуля на выбор доступен один из нескольких типов:
- Базовый MSI-проект — используется технология Windows Installer, доступен вызов InstallScript-, VBScript-, Jscript-скриптов, exe- и dll-файлов.
- Проект InstallScript — InstallScript используется для контроля установки
- InstallScript MSI-проект — совместное использование Windows Installer и InstallScript для развертывания установки.
В свою очередь, для каждого из указанных типов имеется множество дополнительных проектов. В целом, кроме инсталляторов, комплекс позволяет создавать модули объединения (Redistributable), а также модификаторы (Transform).
Есть несколько вариантов начала работы в InstallShield, один из них — воспользоваться пошаговым мастером настройки (Project Assistent), который запускается автоматически при создании нового проекта. Более детальная конфигурация осуществляется в окне дизайнера установки. Настройки сгруппированы следующим образом:
- Информация об установке (Installation Information) — таблица с общей информацией о проекте. Здесь, в частности, можно выбрать язык инсталлятора по умолчанию. Всего InstallShield поддерживает более 30 локализаций.
- Organization (Организация) — включает в себя дизайн установщика, список функций и компонентов, которые будут представлены пользователю на выбор при установке.
- Application Data (Данные приложения) — данные приложения, такие как файлы, модули и зависимости. Часть компонентов может быть установлена локально, другие необходимо скачивать во время установки.
- System Configuration (Системная конфигурация): ярлыки, ресурсы, конфигурационные файлы, сервисы и др.
- Server Configuration — конфигурация сервера в соответствии с требованиями инсталлятора. Сюда входят настройки IIS, сервисы компонентов, SQL-скрипты для SQL Server, Microsoft Windows Azure, MySQL, или Oracle. Используя Microsoft Web Deploy, можно скачивать зависимости, запускать скрипты, выполнять задания на сервере.
- Behavior and logic (Поведение и логика) — скрипты, действия, файлы для инсталляции и др.
- User Interface (Пользовательский интерфейс) — дизайн инсталлятора, включая оформление диалогов, изображения, текст и прочие данные. На выбор доступны темы оформления, очень гибкая настройка уже имеющихся диалогов вплоть до перетаскивания каждого элемента. Построчный редактор позволяет работать с локализациями.
- Media — управление переменными окружения, настройка обновлений и релизов продукта, патчи.
- Дополнительные инструменты (Additional Tools): сканнер файловых зависимостей, MSI-отладчик и прямой редактор, предназначенный для просмотра структуры проекта в виде таблицы.
В качестве скриптового языка для создания инсталляторов выступает InstallScript, имеющий сходство с языком C и позволяющий создавать пользовательские действия (Custom Actions). Тем самым, скрипты помогают при вызове dll-библиотек, запуске приложений, VBScript-, Jscript-, InstallScript- скриптов и мн. др.
Для правки кода в InstallShield используется редактор с подсветкой синтаксиса и автодополнением. Кроме того, для создания действий может использоваться мастер пользовательских действий (Custom Action Wizard).
Резюме. Бесспорно, InstallShield является одним из лидирующих продуктов на рынке инсталляционных комплексов. Его наиболее сильная сторона заключается в гибкости, что позволяет создавать многочисленные типы инсталляторов для развертывания на компьютере или сервере, с поддержкой сценариев. От домашнего использования может отпугнуть достаточно высокая цена лицензии для каждой из редакций, начиная с InstallShield Express ($649).
Setup Factory
Компания Indigo Rose Software Design выпускает продукты для разработки, начиная с 1991 года. Среди них — MSI Factory, TrueUpdate, Visual Patch и смежные решения. Setup Factory — еще один комплекс, позволяющий создавать полнофункциональные скриптовые инсталляторы — но, в отличие от MSI Factory, независимые от MSI. При этом полученный дистрибутив может быть запущен под любой версией Windows, начиная с XP. Доступны альтернативные варианты распространения — установка с CD- или DVD-носителя, веб-инсталлятор с возможностью скачивания зависимостей. Поддерживаются форматы компрессии LZMA/LZMA2 и файлы размером более 2 ГБ.
Инсталляционная среда Setup Factory использует простой, гибкий и мощный скриптовый язык, основанный на языке LUA. Это позволяет задействовать условия, функции, переменные, таблицы и другие средства при написании сценария.
Для создания инсталлятора предусмотрен традиционный пошаговый мастер. Он состоит из следующих этапов работы с проектом: заполнение общей информации об инсталляторе, выбор архитектуры, расположения файлов, стиля и темы оформления, языков установки, состав библиотек.
Как вариант, можно сразу же перейти к самостоятельной настройке проекта установщика, для этих задач предоставляется простой интерфейс редактора. В левой колонке окна приложения доступен список задач, он разбит на секции: файлы, настройки, визуальные опции, действия, ресурсы и деинсталляция.
Управление скриптами осуществляется через секцию Actions. Все действия делятся на несколько этапов, в хронологическом порядке: запуск, процесс установки и возникновение ошибок на данном этапе, окончание установки и завершение работы.
Для составления действий (actions), пользователям предоставлены надстройки Action Wizard и Code Wizard. Всего доступно около 360 скриптов, при этом, каждое действие тщательно задокументировано в хорошо структурированной справке. Параллельно с этим, основная работа с кодом ведется в окне редактора. Подсветка кода и нумерация строк в наличии, для проверки сценария на ошибки можно использовать встроенные средства Setup Factory.
Функциональность инсталлятора расширяется за счет ресурсов. В соответствующем разделе Resources можно указать зависимости (.NET, Visual Basic, DCOM, JET, MDAC, Windows Installer, Visual C++ и пр.), установить глобальные функции и подключить плагины для работы с буфером обмена, архивами, FTP. Кроме того, на форуме разработчика выложены дополнительные расширения.
Удобство редактора проектов заметно при работе с локализациями: можно не только добавить язык интерфейса, но также импортировать или экспортировать данные в XML. Каждый аспект инсталлятора поддается настройке и доступен в режиме предосмотра: диалоги, подписи к кнопкам, форматирование текста, шрифты и мн. др. Внешний вид меняется с помощью предустановленных тем. Причем используются не только «родные» стили (Windows 7, Windows 8 и др.), но и различные MSStyles-модификации, которые можно скачать отдельно.
Напоследок стоит отметить такой аспект Setup Factory, как безопасность. Установка может быть ограничена с помощью серийного номера, все ключи хранятся в MD5-хэше. Во время инсталляции производится проверка безопасности данных, срока годности дистрибутива.
Резюме. Setup Factory позволяет задействовать широкие скриптовые возможности языка LUA. Все действия отлично документированы, пользователь может использовать мастер настройки на различных этапах работы, начиная созданием и заканчивая публикацией проекта. Функциональность инсталлятора может быть расширена благодаря дополнениям. Тщательно настраивается интерфейс установщика, удобна работа с локализациями.
SetupBuilder
SetupBuilder относится к инструментам для быстрой разработки и настройки приложений. С его помощью можно создавать скриптовые инсталляторы с компактным ядром размером в 160 КБ. Это могут быть веб-, CD/DVD-дистрибутивы, работающие под любой ОС Windows 9.x и выше. Среди ключевых особенностей SetupBuilder значится сертифицированная поддержка Windows 8 и Windows Server 2012 — что гарантирует совместимость и корректность установки.
Следует отметить, что есть две редакции приложения на выбор: для разработчиков (Developer) и профессиональная версия (Professional). Перечень возможностей существенно отличаетсямежду этими редакциями, с той особенностью, что более функциональна SetupBuilder Developer. Она включает в себя графический редактор диалогов, отладчик, компилятор, генератор обновлений и прочие компоненты.
Создавая проект с нуля, можно воспользоваться мастером, однако он, по сути, мало что решает. Редактор проектов состоит из следующих разделов: Project Definition (Свойства проекта), Installation Details (Установки), Setup Appearance (Внешний вид), Setup Requirements (Зависимости) и Script Logic (Сценарий).
Project Definition — настройка общей информации, переменных, профилей установки. Следует отметить подраздел Web-deployment (Веб-развертывание), где можно активировать функции веб-обновления или веб-инсталляции продукта. Также, один проект может включать в себя несколько версий приложения (Releases).
Installation Details — определение содержимого инсталлятора, включая файлы, папки, ключи реестра, сервисы, драйверы, переменные окружения и прочие элементы.
Setup Appearance — настройка оформления. Для определения внешнего вида инсталлятора — включая диалоги, текстовое содержание, кнопки, поля и т. д. — используется визуальный редактор. Прочие настройки, такие как локализация и стиль инсталлятора, указываются отдельно в настройках проекта (Project — Settings).
Setup Requirements — проверка зависимостей, прав доступа, системных и прочих файлов.
Script Logic — доступ к сценарию инсталлятора. Для работы со скриптами используется собственная IDE-среда, также имеется встроенный визуальный дебаггер. В SetupBuilder задействован скриптовый язык SetupScript, и, в случае с редакцией Developer, прилагается около 500 предустановленных функций. Кроме использования SetupScript, во время установки можно обратиться Windows API или подключить необходимые DLL-библиотеки.
За безопасность отвечает функция SetupProtect, доступная в SetupBuilder Developer. Она позволяет использовать серийные номера и ключи подписки на определенный период работы. В дополнение, доступна цифровая подпись дистрибутива.
Резюме. SetupBuilder позволяет создавать инсталляторы, веб-инсталляторы и обновления, используя скрипты и возможности Windows API. Из наиболее примечательных сторон данного комплекса — тесная поддержка Windows, визуальные редактирование и отладка проекта, многоязычность и защита от несанкционированного использования.
Visual Installer 2014
Visual Installer — комплекс для создания windows-инсталляторов в визуальном режиме и при поддержке сценариев. Создаваемые дистрибутивы могут распространяться на CD/DVD-, USB-носителях и через интернет, в виде самораспаковывающихся архивов.
Есть две версии Visual Installer — стандартная и профессиональная. В последнем случае, в состав дополнительно включены менеджер проектов и SamLogic Selector — утилита для определения системных зависимостей при запуске. Кроме того, профессиональная версия позволяет работать с 64-битными приложениями и предполагает работу со сценариями.
Вначале Visual Installer предлагает указать формат распространения дистрибутива и установить базовые настройки. Как вариант, можно импортировать в программу имеющиеся проекты из сред Visual Studio / Visual Basic и продолжить работу, основываясь на существующем проекте.
Далее работа осуществляется непосредственно в редакторе. В нижней его части доступны вкладки для навигации между разделами. В разделах File list, Registry, INI Files и Components определяется структура инсталлятора, включая файлы, директории, ключи реестра и другие компоненты. Отдельно можно выделить визуальную составляющую. Так, при настройке мастера установки предоставляется выбор диалогов (вкладка Dialog Boxes): ввод ключа лицензии, выбор компонентов, текст лицензии и т. д. Дизайн установщика определяется в соответствующей вкладке Design: это цвет, фон, шрифты, изображения и звук.
Дополнительные опции инсталлятора доступны в разделе меню Specials. Здесь можно указать зависимости (версия операционной системы и .Net Framework), без которых установка будет невозможна. Также доступны такие опции инсталлятора как тихая установка, цифровая подпись и парольная защита.
Visual Installer предусматривает создание многоязычных дистрибутивов. Управлять локализациями, по сравнению с другими инсталляционными комплексами, не очень удобно: все файлы хранятся в LNG-формате во внешнем файле, который необходимо редактировать вручную в текстовом редакторе.
Сценарии, доступные в Pro-версии, могут быть задействованы перед установкой и после ее завершения. Скриптовый язык позволяет использовать переменные и команды, описанные в справочнике, управлять процессом создания файлов, папок, ярлыков, других компонентов, запускать внешние MSI- и прочие программы. Для редактирования сценариев используется простой редактор с поддержкой автодополнения IntelliSense.
Напоследок, нужно отметить следующий момент: в диалогах некорректно отображается кодировка и не все активные кнопки срабатывают при нажатии. Данная проблема наблюдается в Windows 8.
Резюме. Достаточно простой и несколько устаревший инсталляционный комплекс, где, тем не менее, доступны сценарии и визуальный редактор проектов. Все настройки осуществляются на основе заготовок, изменить порядок установки нельзя.
Сводная таблица
Приложение | NSIS (Nullsoft Scriptable Install System) | Inno Setup | IzPack | Excelsior Installer | WiX Toolset | Clickteam Install Creator | Actual Installer | CreateIntall | Advanced Installer | InstallBuilder | InstallMate | InstallShield | Setup Factory | SetupBuilder | Visual Installer |
Разработчик | Nullsoft | Jordan Russell, Martijn Laan | Julien Ponge и др. | Excelsior | Microsoft | Clickteam | Softeza Development | Novostrim | Caphyon LTD | BitRock | Tarma Software Research | Flexera Software | Indigo Rose | Lindersoft | SamLogic |
Платформа | Windows, POSIX | Windows | Windows, Linux, MacOS + | Windows | Windows | Windows | Windows | Windows | Windows | Windows, Linux, Mac OS + | Windows | Windows | Windows | Windows | Windows |
Цена | бесплатно | бесплатно | бесплатно | бесплатно | бесплатно | €49,00 / €119,00 (Pro) | $89 | бесплатно (Free) / 2000 руб. (полная версия) | от $399 | от $995 | от $89 | от $649 | $395 | $299 (Developer) / $169 (Pro) | $129 |
Язык сценариев | NSIS | Inno Setup Script, Pascal | Java | − | Windows Installer | − | − | Gentee | VBScript, Jscript | Java, PHP, Perl, Python, Ruby, C/C++, .NET/Mono | VBScript, Jscript, PowerShell | InstallScript, PowerShell | LUA | SetupScript | Visual Installer |
Тип установщика | EXE | EXE | JAR | EXE | MSI | EXE | EXE | EXE | EXE, MSI, JAR | EXE | EXE, MSI | EXE, MSI | EXE | EXE, MSI | EXE |
Редактор проектов | + (надстройки) | + (надстройки) | + (надстройки) | + | + (надстройки) | + | + | + | + | + | + | + | + | + | + |
Импорт проектов | − | − | Eclipse, IntelliJ IDEA, Netbeans, Apache Ant | NSIS | Visual Studio | − | − | − | Visual Studio, Eclipse, Visual Basic и др. | − | Visual Studio, Visual Basic и др. | Visual Studio, Windows Installer и др. | Visual Basic, .NET, Windows Installer и др. | .NET | Visual Studio, Visual Basic |
Мультиязычность | + | + | + | + | + | − | + | + | + | + | + | + | + | + | + |
Типы компрессии | ZLib, BZip2, LZMA | BZip2, LZMA/LZMA2 | raw, gzip, bzip2, 7-Zip SFX | не указано | MSZIP | zipper/ differentiator | не указано | CAB, 7-Zip | LZMA | LZMA | LZMA/LZMA2 | Zlib | LZMA/LZMA2 | LSZip | ZIP |
Серийный номер / парольная защита | − | + | + | − | − | + (Pro) | + | + | + | + | + | + | + | + | − |
Выбор компонентов при установке | + | + | − | − | + | − | − | − | + | + | + | + | + | + | − |
«Тихая» установка | + | + | + | + | + | − | + | + | + | + | + | + | + | + | + |
Командная строка | + | + | + | + | + | − | + | + | + | + | + | + | + | + | + |
Расширения | + | − | + | − | + | − | − | − | + | − | + | + | + | + | + |