Ни один серьезный продукт не обходится без инсталлятора – специальной программы,
которая распакует дистрибутив, скопирует файлы твоей программы в выбранный
пользователем каталог, создаст программные группы, внесет необходимые изменения в
реестр, а также установит и зарегистрирует необходимые твоей программе библиотеки,
если это необходимо.
Ясно, что своими руками писать инсталлятор мы не будем, поскольку это лишние затраты
времени, которые никто не оценит. Разве что у тебя настолько уникальная программа, что
ни один инсталлятор не сможет ее правильно установить, поскольку «не знает» всех ее
особенностей. В этом случае данная статья не для тебя, поскольку в ней будут
рассмотрены популярные стандартные решения для создания инсталляторов, а именно –
InstallShiled для Delphi, Visual Studio Installer, Setup Factory и InnoSetup. Конечно, твой
выбор не ограничивается только этими программами, но они были выбраны как одни из
самых лучших в своем классе.
Скорее всего, ты когда-нибудь использовал одну или несколько программ для создания
инсталляторов. Если ты использовал две-три или более таких программ, то, наверное,
заметил, что бывают эти программы трех типов «автоматизированные», «ручные» и
«полуавтоматизированные». Первые представляют собой мастер (или его пошаговое
подобие с возможностью выбирать шаг создания инсталлятора), создающий проект
инсталлятора. Примером такого типа программ может послужить InstallShield для Delphi.
Второй тип программ подразумевает создание разработчиком (то есть тобой)
специального скрипта, на основании которого будет создан инсталлятор. Скрипт
описывает этапы установки программы и их последовательность. Примером второго типа
программ может послужить не рассматриваемая в статье программа WISE. Третий тип
программ – это своеобразный симбиоз первого и второго типов. Программа третьего типа
обладает собственным мастером, который «пишет» скрипт. Ты можешь откомпилировать
этот скрипт сразу или немного его изменить, подправив, например, ключ реестра или
другую информацию, а потом уже компилировать. Большинство современных программ
для создания инсталляторов именно третьего типа.
Наиболее удобными программами являются программы первого типа. Инсталлятор с их
помощью можно создать, как говориться «за пару кликов мышью». Но такие программы
могут не предусмотреть всех твоих пожеланий и вполне возможно, что при их
использовании тебе будет не хватать некоторых функций.
Программы второго типа являются более функциональными, чем программы первого типа
– тут есть, где разгуляться. Их недостаток – то, что фактически ты сам пишешь
программу-инсталлятор. Время экономиться только на создании стандартных диалогов
выбора каталога для установки, окна чтения лицензии, окна выбора компонент программы
и т.д. Эти окна создает сама программа. Но что будет делать твой инсталлятор – это уже
что ты сам напишешь. На создание инсталляторов с помощью программ второго типа
уходит намного больше времени, чем в предыдущем случае.
Третий тип программ сочетает в себе все преимущества первых двух типов. В твоем
распоряжении, мастер, создающий сценарий установки. Если твоя программа стандартная,
то есть не требует выполнения каких-либо специфических операций при установке,
инсталлятор будет создан через пару минут, как будто ты используешь полностью
автоматизированную программу первого типа. Но если тебя что-то не устраивает, ты
можешь отредактировать созданный программой сценарий, как будто ты используешь
программу второго типа.
А теперь перейдем к рассмотрению вышеупомянутых программ. Начнем с Install Shield.
Данная программа абсолютно бесплатна и ты сможешь ее найти на любом компакте с
Delphi, желательно чтобы версия Delphi была посвежее – на новом компакте версия Install
Shield тоже будет относительно свежая. Если компакта под рукой нет, ты всегда сможешь
«стянуть» ее с сайта Borland. Вот что выходит в «обязанности» этой программы:
Это, конечно, не все функции программы, но основные функции как говорят «учтены».
Использовать InstallShield очень удобно, если твоя программа использует BDE. Во всех
остальных программах BDE тебе придется описывать «вручную», что, мягко говоря, не
удобно. Даже если в InstallShield нет очень нужной тебе функции, это с головой
компенсируется поддержкой BDE. Ты даже себе не представляешь от какой головной
боли ты избавишься, если будешь использовать InstallShield для установки и
конфигурирования BDE.
Visual Studio Installer – это бесплатная утилита от Microsoft, предназначенная для создания
инсталляторов для программ, написанных с помощью Visual Studio. Программа доступна
в двух версиях – 1.0 (для Win 98) и 1.1 (для Win ME, 2000, XP). Программа доступна по
адресу:
http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/default.asp
Перед установкой программы убедись, что у тебя установлен Visual Studio Service Pack 3.
Главное преимущество Visual Studio Installer связано именно с самим Visual Studio. Если
твоя программа написана на Visual Basic или Visual C, Visual Studio Installer сам
«пропишет» в проекте инсталлятора все нужные библиотеки, которые потом будут
«скомпилированы» в дистрибутив. Кроме этого Visual Studio Installer ничем особенно не
выражается – программа как программа.
Setup Factory – это коммерческий продукт, предназначенный для создания инсталляторов.
Данный продукт стоит немалых денег – за седьмую версию просят 395 долларов. Ясно,
что никто из нас эти деньги платить не собирается, но все равно сумма говорит за себя.
Дистрибутив Setup Factory 7.0 «весит» 18 Мб и постоянно доступен для загрузки :).
Программа может работать под управлением Windows 95/98/Me/NT/2000/XP/2003 Server.
«Конек» Setup Factory, который будет непременно оценен пользователем, это темы
диалогов. Программа содержит по умолчанию более 20 различных тем стандартных
диалогов инсталлятора, поэтому твой инсталлятор не будет похож на инсталляторы
конкурентов.
Setup Factory – это программа третьего типа, то есть мастер + возможность
редактирования сценария, хотя больше ориентирована именно на создание сценария
вручную. В этом случае тебе открываются более 250 разных функций программы,
которые недоступны при использовании мастера.
Основные функции:
Inno Setup – это бесплатная программа для создания инсталляторов, причем ее исходный
код (написана на Delphi) доступен в Сети.
Основные функции программы:
Программа обладает всеми необходимыми функциями, Inno Setup – очень простой и
удобный инсталлятор. Кроме того, это универсальный инсталлятор, он не привязывается
ни к Delphi, ни к Visual Studio. Плохо это или хорошо, зависит от твоей программы.
Лучше, конечно, чтобы InnoSetup поддерживал BDE и библиотеки Visual Studio, но пока
этого нет.
Ты не знаешь, какую программу выбрать? По началу используй стандартный инсталлятор,
который «идет в нагрузку» с твоей IDE. Если ты пишешь на Delphi, попробуй сначала
использовать InstallShiled, а потом уже пробовать другие инсталляторы. Если же ты
пишешь на Visual C/Visual Basic – используй Visual Studio Installer.
Если возможностей стандартных программ тебе будет не хватать, попробуй сначала
InnoSetup, а потом SetupFactory. Единственный случай, когда у тебя не будет выбора – это,
если твоя программа использует BDE – тогда намного рациональнее использовать
InstallShield.
Попробуем создать дистрибутив с помощью InnoSetup. Программа не использует BDE,
поэтому весь дистрибутив будет состоять всего из четырех файлов: sto.exe, sto.chm, sto.ini,
vincheck.exe
Запускаем InnoSetup и выбираем Create a new script file using the Script Wizard.
Появится окно мастера, в котором нужно будет ввести информацию о программе:
Следующий шаг мастера – это выбор каталога для установки программы. Выбор
небольшой:
Каталог для твоей программы, который будет создан в каталоге Program Files, задается в
поле Application directory name. Обычно он устанавливается по имени программы.
По умолчанию включена опция Allow user to change the application directory, позволяющая
пользователю изменять каталог установки. За исключением редких случаев выключать ее
не нужно.
Теперь нужно выбрать файлы, которые нужно включить в состав дистрибутива. В поле
Application main executable file указывается основной исполнимый файл приложения.
Потом с помощью кнопок Add files(s)/Add directory добавляются нужные файлы/каталоги.
Кнопка Edit позволяет подправить параметры файла, а именно изменить каталог
назначения файла – больше ничего полезного она не делает. В качестве каталога
назначения доступны следующие каталоги:
В поле Destination subdirectory можно указать подкаталог каталога назначения.
Следующий шаг – позволяет указать имя создаваемой программной группы, а также какие
ярлыки нужно создавать.
Жалко, что мастер не позволяет создавать ярлыки для отдельных файлов, поэтому, чтобы
в программной группе было больше ярлыков выбери создание ярлыка для твоего сайта
(Internet shortcut), а также ярлыка для uninstaller’а. Можно, конечно, подправить сценарий
установки, но лучше, если бы мастер программной группы был более функциональным,
например, как в Install Shield.
После создания программной группы мастер предложит указать файл лицензии и файлы,
которые будут отображены до и после инсталляции.
Следующий шаг очень важен – ты можешь указать другой компилятор, выбрать имя для
инсталлятора (обычно setup), выбрать пиктограмму для setup.exe, а также установить
пароль для запуска setup.exe.
Все, что тебе осталось, это нажать кнопку Finish. Затем программа спросит, нужно ли
откомпилировать сценарий прямо сейчас – не нужно, лучше просмотри код сценария.
Разобраться с только что созданным сценарием не сложно, тем более что, прочитав
справку, ты сможешь не только понять, что там написано, но и усовершенствовать
сценарий.
Теперь нажимаем кнопку Run или нажимаем F9, наш сценарий будет откомпилирован и
запущен:
Смотрим протокол, чтобы найти только что созданный setup.exe. Протокол отображается
в нижней части окна программы.
Суммарный размер четырех файлов дистрибутива – 2.7 Мб, размер файла setup.exe – чуть
больше 900К. Вполне приемлемо, не так ли?
О создании инсталлятора с помощью InstallShield ты можешь прочитать на моем сайте:
http://dlws.narod.ru/linux/inst/instsh.html
Если тебе нужен компактный инсталлятор, ты можешь написать его на ассемблере,
прочитать можно тут http://dlws.narod.ru/linux/asm/asm-ins.html
Все твои вопросы и комментарии рад буду выслушать по адресу dhsilabs@mail.ru
Создание инсталлятора
Денис Колисниченко (dhsilabs@mail.ru)
Выбираем софт
Install Shield
InstallShield
Visual Studio Installer
Setup Factory (http://www.setupfactory.com)
Setup Factory
Inno Setup (http://www.innosetup.com)
Какую программу выбрать?
InnoSetup: создание дистрибутива
InnoSetup: создание нового сценария
InnoSetup: базовая информация о программе
InnoSetup: выбор каталога для установки
InnoSetup: добавление файлов
InnoSetup: редактирование параметров файла
InnoSetup: программная группа и ярлыки
InnoSetup: параметры компилятора
InnoSetup: код сценария
InnoSetup: созданный инсталлятор
[10:09:15] *** Setup started
[10:09:15] Setup version: Inno Setup version 5.0.8
[10:09:15] Original Setup EXE: E:\Program Files\Inno Setup 5\Output\setup.exe
[10:09:15] Setup command line: /SL4 $10038E "E:\Program Files\Inno Setup
5\Output\setup.exe" 679818 51712 /DEBUGWND=$102E2
[10:09:15] Windows version: 5.01.2600 SP1 (NT platform: Yes)
[10:09:15] User privileges: Administrative
…
InstallShield