CreateInstall - универсальный инструмент для создания инсталляторовАвтор: Илья Данилов Опубликовано: 23.06.2008 Источник: SoftKey.info 
Как только программный продукт достигает минимально зрелого состояния, ему требуется инсталлятор: специальная программа, которая запустится на компьютере пользователя, задаст ему пару вопросов, потребует согласиться с лицензией и аккуратно разложит все программные компоненты в предназначенные им места на жестком диске.
Программы семейства CreateInstall – как раз предназначены для выполнения всех рутинных задач по созданию качественного инсталлятора, позволяя разработчику программного обеспечения сосредоточиться исключительно на своем продукте. Не надо писать подсчет контрольных сумм для проверки целостности дистрибутива, городить механизм сжатия и распаковки файлов, самому проверять версию операционной системы, административные привилегии... наконец, не надо владеть иностранным языком, чтобы инсталлятор выглядел дружелюбно даже для китайского пользователя.
Чтобы оценить, насколько сложно использовать CreateInstall, создадим с его помощью простейший инсталлятор. За неимением под рукой какой-либо собственной программы потренируемся на стандартном приложении Windows, например winhlp32.exe. Запускаем CreateInstall и нажимаем Ctrl-N (создать новый проект). Перед нами – окно с закладками, которые предстоит заполнить.
Вывод. Здесь сосредоточено все, что касается вывода конечного результата, то есть исполняемого файла инсталлятора. По умолчанию будет создан setup.exe в папке c:setups:

Файлы. Указываем все исходные файлы, которые должны быть помещены в дистрибутив, для этого нажимаем Insert, создается новая группа с именем по умолчанию
"group1".
При помощи кнопки на панели справа добавляем файл C:Windows winhlp32.exe и указываем для него в качестве "Конечной директории" значение INSTALL_PATH (папка, куда пользователь пожелает произвести установку).

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

Допустим, мы хотим, чтобы инсталлятор создал ярлык запуска в меню "Пуск". В этом случае надо выбрать "Ярлыки", затем добавить туда новый элемент (Ins).
Поскольку ярлык будет ссылаться на файлы, размещенные на диске уже после инсталляции, указываем путь INSTALL_PATH и все тот же winhlp32.exe.

Установка. Эта закладка служит для более тонкой настройки, если требуется нечто большее, чем можно определить на закладке "Мастер":

Слева перечислена последовательность шагов установки. С ними можно делать все что угодно: добавлять, редактировать и удалять, менять местами. Если жаль удалять какой-то шаг, но хочется поэкспериментировать, можно выключать и включать вновь. Выключенные шаги обозначаются иконкой с зеленым крестиком, выполняемые – пиктограммой документа.
Поскольку для нашего простого примера более чем подходит стандартная последовательность шагов установки, то ничего не трогаем.
Деинсталляция и интернет-обновление. Обособленные настройки, схожие по смыслу с закладкой "Установка". Тоже ничего менять не надо.
Практически готово. Осталось сохранить нашу работу в файле при помощи меню "Сохранить как". После этого можно смело нажимать "Создать инсталляционный файл" и наслаждаться ходом компиляции проекта. Он займет не более пяти секунд, после чего можно открыть папку c:setups и увидеть там файл setup.exe.
Запускаем инсталлятор. Если при его создании вы использовали незарегистрированную платную версию в режиме ознакомления, первым делом вы получите предупреждение:

Затем последовательно появятся окна мастера: приветствие, выбор конечной директории для установки, индикатор процесса распаковки и сообщение об успешном завершении:

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

На мой взгляд, получилось достаточно просто. CreateInstall может оказаться весьма полезным не только для разработчика, но и для обычного пользователя: согласитесь, что делиться с коллегами по офису набором стандартных шаблонов документов в виде инсталлятора – на порядок проще и элегантнее: достаточно снабдить их одним-единственным исполняемым файлом, который надежно разместит результат на рабочей машине. Для этой цели хорошо подходит "облегченная" версия CreateInstall Light, в которую включены только самые часто используемые возможности, а набор настроек сокращен до минимума:

Профессиональные разработчики программного обеспечения практически сразу должны задать вопрос: "Как быть, если мне понадобится что-нибудь такое, чего нет в этой программе? Перескакивание с одного инсталлятора на другой только потому, что не нашлась какая-то жизненно необходимая функция, – пустая трата времени!"
Вынужден согласиться: действительно, это потеря времени. Но задумайтесь, сколько времени вы сэкономите на написании своего собственного инсталлятора! Вы не забыли про отладку? А ведь часто результат работы вашего собственного инсталлятора будет находиться на машине клиента, что может потребовать от вашей службы поддержки нетривиальных способностей по локализации проблемы. Однако признаемся себе: нельзя заранее предусмотреть всего на свете. Отметим лишь достаточно неплохой набор функциональных возможностей CreateInstall:
- внешний вид окон мастера может быть изменен – названия, шрифт, иконки, цвет, любой текст;
- можно заносить ключи в реестр, секции в INI-файлы, регистрировать DLL, OCX и собственные шрифты;
- последовательность инсталляции можно произвольно менять – переставлять, удалять и добавлять шаги, в том числе создать собственные диалоговые окна;
- организация процесса обновления через Internet в ходе инсталляции, а в ходе деинсталляции – перенаправление на URL для с анкетой, например
"почему вы все-таки решили удалить нашу замечательную программу?";
- возможность проверки административных привилегий, переменных окружения, версии ОС, блокировок файлов, наличия в системе запущенных приложений - по названию окна или имени процесса.
Может быть, не хватает разве что поддержки 64-разрядных систем, у которых, как известно, два отдельных каталога для 32- и 64-разрядных динамических библиотек.
Для реализации изощренных моментов инсталляции можно использовать язык Gentee, чем-то напоминающий по синтаксису C. Компилятор встроен в CreateInstall, процедуры Gentee компилируются в промежуточный байт-код и исполняются достаточно быстро. Если нужно просто организовать какое-то логическое выражение в процессе установки, то прибегать к Gentee необязательно: конструктор логических выражений встроен в интерфейс CreateInstall в виде отдельного элемента установки.
Те, кто применяет автоматизированные системы сборки своих программных продуктов и захочет интегрировать в нее CreateInstall, найдут полезным то, что файл проекта *.ci имеет текстовый XML-подобный формат, а также возможность запуска CreateInstall из командной строки.
Существует и бесплатная версия CreateInstall FREE, которая лишена некоторых возможностей, но тем не менее вполне подходит для создания коммерческих инсталляторов. Кстати, многие из ознакомительных или бесплатных версий конкурентов не дают возможности полностью менять оформление окон мастера установки. CreateInstall FREE – не исключение, но поступает достаточно демократично: ограничение распространяется только на текст в левом нижнем углу мастера, вместо ссылки на вашу программу, там будет написано CreateInstall FREE:

Давая общую оценку программе, хочется отметить удачную композицию уровней настроек: простой, усложненный и поддержка языка Gentee. Программа регулярно обновляется, а значит, будут исправлены ошибки, добавлены новые функции. Наконец, запросы к технической поддержке формируются через тикет-систему, что всегда выгодно отличается от простой переписки по e-mail.
|