Inno Setup
Данная статья является попыткой донести первоначальные знания в области использования этого инструмента для написания инсталяционной рутины и ни в коем образе не претендует на звание "продвинутой".
Inno Setup это свободная для использования программа. Ее создателем является Джордан Рассел (Jordan Russell). Впервые представлена в 1997 году. Ее можно свободно скачать.
Основные черты:
- поддерживает все 32-х битные версии Windows (95, 98, 2000, 2003, XP, Me, NT 4.0)
- создает создание одного файла exe, что значительно облегчает процесс инсталяции Вашей программы
- стандартный интерфейс Windows 2000/XP
- ориентирован на пользователя (например, полный, минимальный, пользовательский вариант)
- все инструменты для деинсталяции
- инсталирование файлов: встроенная поддержка "deflate", bzip2, 7-zip LZMA файлы сжатия. Программа может сравнивать информацию о версии файла, перемещать используемые файлы; подсчет разделенных файлов (shared); регистрировать DLL/OCX/FNT/TLB и типовые библиотеки; инсталировать шрифты
- проверяет, активны ли определенные программы
- создание ярлыков быстрого доступа (например, через старт-меню или на рабочем столе)
- осуществление записи в ini-файлы
- встроенная машина для написания скриптов на языке Pascal
- поддерживает многоязыковую инсталяцию
- инсталяция и деинсталяция по умолчанию
- весь код доступен (Borland Delphi 2.0-5.0)
- защита пароля для setup
- в случае отмены во время исполнения, все действия будут приведены в исходное состояние
Существует Newsgroup-а, созданная автором (к сожалению, только на английском языке), где, как правило, можно быстро и компетентно получить ответ.
Cамые простые и частые вопросы.
Является ли эта программа совершенно бесплатной для использования в тoм числе и коммерческого?
Программа является бесплатной. Однако на нее есть copyright, что описано в лицензии.
Поддерживает ли Inno Setup MBCS (мультибайтовые наборы знаков)?
Inno Setup 2.0.6 включает полную поддержку для MBCS. В более ранние версии последнее свойство не входит.
Поддерживает ли программа web-инсталяцию?
нет
Скрипт.
Это простой ASCII текстовый файл, пстроен на подобии INI. Скрипт разделен на секции, имена который пишутся в квадратных скобках []. Внутри секций существуют ключевые слова и указания, которые компилятор может читать и выполнять.
Комментарии.
Начинаются с точки с запятой в начале строки и могут быть помещены в любое место скрипта. Коментарии блоком не возможны, как впрочем и вынесение коментария в середину строки. Последнее допускается компилятором, но впоследтвие, при выполнение, ведет к ошибке.
Секции.
Порядок секций не имеет значения. Все они (за исключением [Setup]) являются произвольными. Ключевому слову значение присваивается при помощи знака равенства (=).
Указания состоят из одного или нескольких параметров и их опций, а также флагов (flags). Параметр же в свою очередь состоит из имени, за которым следует двоеточие (:) и значения. Параметры, опции и флаги отделяются друг от друга точкой с запятой (;).
Обзор секций:
секция | значение |
[Setup] | сoдержит указания по поведению инсталяционной рутины, а также, как это должно выглядеть. Ключевые слова AppName, AppVerName и DefaultDirName являются обязательными. Все остальные - по необходимости |
[Files] | Здесь содержатся файлы для setup |
[Icons] | ярлыки (иконки) |
[Components] | Соотношение компонентов к типу инсталяционной рутины |
[Dirs] | разрешает создать новые пустые папки |
[INI] | делает записи в INI- файлы |
[InstallDelete] | первое действое при инсталяции, cистаксис соответствует секции [UninstallDelete] |
[Messages] | разрешает специфические изменения в тексте |
[Registry] | делает запись в регист |
[Run] | выполняет другие программы после того как данные успешно были исталированы, но еще до того как будет закрыто диалоговое окно |
[Tasks] | разрешает дополнитекльные действия в setup |
[Types] | устанавливает тип setup-а |
[UninstallDelete] | последняя операция при деинсталяции. Таким образом папки и/или файлы будут удалены |
[UninstallRun] | первая операция при деинсталяции. Систаксис соответствует секции [Run] |
[LangOptions] | содержит информацию о языке. как правило, не используется |
Inno работает внутри скрипта с различными предопределеными константами, которые, как правило, содержат пути (path). Способ написания: {имя}. Некоторые константы, такие как {app} и {group} могут/должны быть предопределены пользователем (см. пример ниже). Тот, кто сам желает определить константы, должен обратиться к припроцессеру Алекса Якимова (Alex Yackimoff).
константы | содержание | пример |
{win} | путь в директорию/папку Windows | C:\Windows |
{sys} | путь в системную папку Windows, в частности папку System32 | C:\Windows\System или
C:\Windows\System32 |
{app} | путь к собственной аппликации (программе) | |
{pf} | путь к программной папке | C:\Programme |
{cf} | путь к общим данным | C:\Programme\Gemeinsame Dateien |
{dao} | cоответствует{cf}\Microsoft Shared\DAO | C:\Programme\Gemeinsame Dateien\Microsoft Shared\DAO |
{src} | путь к папке инсталявионной рутины, в момент выполнения setup | R:\ |
{group} | группа программ для стартового меню | |
Примеры:
Таким образом может быть написан комментарий
; -- Sample1.iss --
; Demonstrates copying 3 files and creating an icon.
Обязательная часть
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
AppCopyright=Copyright (C) 1997-2000 My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Данная секция хоть и является производной, однако используется в большиинстве случаев. В данном случае копируются три файла в папку, путь в которую записан в переменную {app}
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.hlp"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
После написания скрипта необходимо его откомпилировать.
В этой небольшой статье я попыталась описать основные правила использования Inno Setup. Больше информации Вы можете получить на авторском сайте www.jrsoftware.org
Анастасия Маховикова
Источники:
http://www.unofactura.de/inno.htm
jrsoftware.innosetup
jrsoftware.innosetup.code
jrsoftware.innosetup.thirdparty
www.innosetup.de.vu
|