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
|