Понятие дистрибутива
Дистрибутивом приложения называют специальный файл, при запуске которого происходит установка данного приложения на компьютер пользователя. Дистрибутив небольших приложений обычно представляет собой файл с именем Setup.exe. Для сложных приложений дистрибутивы могут состоять из большего количества файлов.
В состав современного приложения входит большое количество разнообразных файлов, например: файлы программ (.EXE), динамических библиотек (.DLL), документации (.DOC, .TXT, .PDF, .HTML), рисунков (.JPG, .BMP), справки (.CNT, .HLP, .CSM), баз данных (.MDB, .MDF, .LDF) и т.п. Простое копирование перечисленных файлов на компьютер пользователя не позволяет установить приложение по следующим причинам:
• необходимо воссоздать определенную структуру каталогов, в которых будут размещены файлы приложения;
• желательно дать возможность пользователю прочитать лицензионное соглашение, выбрать каталог для установки приложения, выбрать необходимые компоненты и т.д.;
• желательно создать ярлыки программ в меню Пуск–Программы, на панели быстрого запуска, на рабочем столе;
• иногда требуется зарегистрировать в системе определенные типы файлов, прописать некоторую информацию в реестр;
• после установки приложения может потребоваться запустить определенную программу или вывести на экран текст справки.
Для решения перечисленных проблем и разрабатывают дистрибутивы. В состав дистрибутива включают все требуемые для работы приложения файлы, а также предусматривают в ходе установки приложения выполнение всех необходимых действий по созданию каталогов, ярлыков, записей в реестре, и т.д.
Для создания дистрибутивов используют специальные программы-инсталляторы. Наиболее известной, но в то же время сложной является программа InstallShield. Для знакомства с созданием дистрибутивов использование этой программы нецелесообразно. В лабораторной работе будем использовать более простую для освоения программу-инсталлятор Inno Setup 4. Существенным достоинством программы является возможность ее бесплатного использования, в том числе и в коммерческих целях.
Особенности подготовки дистрибутивов приложений, написанных на Borland Delphi
Чтобы грамотно создавать дистрибутивы приложений, необходимо знать, из каких файлов они состоят. Рассмотрим особенности подготовки дистрибутивов программ, написанных на Borland Delphi 7.
Запустим Borland Delphi, откроем проект приложения и зайдем в свойства проекта, выбрав пункт меню Project–Options. Сначала настроем свойства приложения, выбрав вкладку Application (рисунок 1).
В поле Title зададим название приложения, которое будет выводиться на панели задач во время работы приложения. Например, напишем: “Пример приложения БД”.
В поле Help file можно задать имя файла справки, если он используется в приложении. При этом можно нажать на кнопку Browse, чтобы выбрать файл с помощью диалогового окна.
Нажав на кнопку Load Icon, можно выбрать с помощью диалогового окна пиктограмму, которая будет выводиться на панели задач при запуске приложения и отображаться в Проводнике. Пиктограммы имеют расширение .ICO, их можно создать с помощью приложения Image Editor, входящего в состав Borland Delphi.
Теперь откроем вкладку Packages и уберем флажок Build with runtime packages (рисунок 2). В этом случае приложение будет представлять один .EXE.
Создание дистрибутивов с помощью программы Inno Setup
Найти программу можно на сайте http://www.innosetup.com . Для запуска программы выберем пункт меню Пуск–Программы–Inno Setup 4 – Inno Setup Compiler. Далее в открывшемся окне можно выбрать пункт Create a new script file using Script Wizard, чтобы построить простой дистрибутив с помощью мастера, или пункт Create a new empty script file, чтобы создать дистрибутив самостоятельно. Выберем последний вариант. На рисунке 3 показан пример главного окна программы Inno Setup.
Процесс установки приложения описывается с помощью так называемого сценария установки, представляющего собой текстовый файл с расширением *.iss. Рассмотрим пример простого сценария для установки приложения Example.exe. Полный текст сценария приведен в Приложении 1.
Сценарий состоит из нескольких секций, начинающихся с названия, заключенного в квадратные скобки. Например, [Setup], [Components] и т.п.
Секция [Setup] содержит основные настройки процесса установки. К наиболее часто используемым настройкам относится следующее:
1. Полное название приложения. Позволяет задать полное название приложения, которое будет выводится на экран в процессе установки. Например:
AppName= Пример клиентского приложения БД
2. Краткое название приложения и версия. Позволяет задать сокращенное название приложения, которое будет использоваться при создании ярлыков и пунктов главного меню. Также позволяет указать версию приложения. Например:
AppVerName=Sample 1.0
3. Автор приложения. Позволяет задать имя автора, создавшего приложение. Например:
AppPublisher=РГРТУ
4. Каталог установки. Позволяет задать каталог, куда по умолчанию будет устанавливаться приложение. Например:
DefaultDirName={pf}\Sample
Ключевое слово {pf} означает ссылку на стандартный каталог Program Files.
5. Имя группы. Позволяет задать имя папки в главном меню, где будут созданы ярлыки для приложения. Например:
DefaultGroupName=Пример
6. Запрет приглашения. Позволяет запретить показ приглашения перед началом установки. Например:
DisableStartupPrompt=yes
Секция [Languages] позволяет задать язык, на котором будут выводиться сообщения. Чтобы использовать русский язык следует указать:
[Languages]
Name: "ru"; MessagesFile: "compiler:russian.isl"
При этом необходимо скопировать файл russian.isl из каталога …\Inno Setup 4\Languages в каталог …\Inno Setup 4.
Секция [Types] позволяет указать различные типы установки приложения: полную, стандартную, выборочную, минимальную и т.п. Например:
[Types]
Name: "custom"; Description: "Выборочная установка";
Flags: iscustom
Name: "full"; Description: "Полная установка"
В данном примере используются два типа установки: выборочная и полная. Каждому типу установки ставится в соответствие имя, задаваемое с помощью параметра Name. С помощью параметра Description задается название типа установки, которое будет выводиться в процессе установки. Параметр Flags со значением iscustom позволяет указать, что данный тип установки является выборочным, т.е. пользователь может выбирать компоненты приложения, который требуется установить.
Секция [Components] позволяет перечислить те компоненты, из которых состоит приложение. Под компонентом понимают группу логически взаимосвязанных файлов, которые должны устанавливаться совместно. Каждому компоненту задается имя с помощью параметра Name. С помощью параметра Description задается название компонента, которое будет выводиться в процессе установки. Параметр Types позволяет перечислить имена типов установки, для которых разрешено использование данного компонента. Например:
[Components]
Name: "program"; Description: "Приложение";
Types: custom full;
Name: "ADO"; Description: "ADO"; Types: custom full;
Name: "DB"; Description: "База данных"; Types: custom full;
В данном примере заданы три компонента, использование которых разрешено в обоих типах установки.
Секция [Files] позволяет указать файлы, из которых состоят компоненты. Для каждого файла задаются следующие параметры:
• Source – полный или относительный путь к файлу на компьютере, где создается дистрибутив, т.е. откуда брать файл;
• DestDir – полный или относительный путь, куда будет устанавливаться файл, т.е. куда помещать файл. Путь относительно к каталогу установки, выбранного пользователем может быть задан с помощью ключевого слова {app}. Ссылка на каталог временных файлов осуществляется с помощью ключевого слова {tmp}.
• CopyMode – режим копирования, alwaysoverwrite означает, что файл в любом случае будет переписан, даже поверх уже существующего;
• Components – имя компонента, к которому относится файл.
Например:
[Files]
;Приложение
Source: "sample.exe"; DestDir: "{app}";
CopyMode: alwaysoverwrite; Components: program
;Устнаовка ADO
Source: "MDAC28.EXE"; DestDir: "{tmp}"; Components: ADO
;База данных
Source: "osql.exe"; DestDir: "{tmp}"; Components: DB
Source: "structure.sql"; DestDir: "{tmp}"; Components: DB
В данном примере в состав приложения входят следующие файлы:
• sample.exe – исполняемый файл приложения;
• MDAC28.EXE – файл для установки интерфейса ADO;
• structure.sql – файл скрипта для создания БД, с которой работает приложение; osql.exe – утилита для исполнения скрипта.
Секция [Run] позволяет перечислить исполняемые файлы, которые будут автоматически запущены после окончания процесса установки. В нашем примере это используется для установки ADO-интерфейса и создания БД. В качестве параметров указывается имя запускаемого файла, параметр командной строки и имя компонента, к которому относится запускаемый файл.
[Run]
;Запуск установки ADO
Filename: "{tmp}\ MDAC28.EXE"; Parameters: ""; Components: ADO
;
;Запуск исполнения сценария ;для выполнения скрипта ;structure.sql,создающего БД на сервере с именем vpm1,
;именем пользователя sa, паролем sa
Filename: "{tmp}\osql.exe"; Parameters: "-S dc.vpm.rrtu -U sa -P sa -i {tmp}\structure.sql"; Components: DB
Секция [Icons] позволяет создать ярлыки для приложения, расположенные в главном меню или на рабочем столе. Для определения каждого ярлыка требуется задать следующие параметры:
Name – имя ярлыка и его местоположение ({group} – папка в главном меню; {userdesktop} – на рабочем столе)
; Filename - путь и имя файла, для которого создается ярлык
; WorkingDir - рабочий каталог программы
; Components - компонент, к которому относится данный ярлык
[Icons]
;Ярлык приложения в главном меню
Name: "{group}\Пример"; Filename: "{app}\sample.exe";
WorkingDir: "{app}"; Components: program
;Ярлык приложения на рабочем столе
Name: "{userdesktop}\Пример"; Filename: "{app}\sample.exe";
WorkingDir: "{app}"; Components: program
Кроме того, в секции можно задать ярлык для деинсталляции приложения. Например:
;Деинсталлятор
Name: "{group}\Удалить программу";
Filename:"{uninstallexe}"
Для создания дистрибутива приложения необходимо запустить сценарий на выполнение. Для этого следует выбрать пункт меню Run–Run или нажать F9. Созданный дистрибутив будет размещен в папке Output, расположенной в папке где сохранен сценарий.
По окончании создания дистрибутив будет автоматически запущен для пробной установки, что позволяет проверить правильность разработанного сценария.
Программу для установки ADO можно скачать с FTP-сервера кафедры или спросить у преподавателя.
Приложение 1
[Setup]
AppName= Пример клиентского приложения БД
AppVerName=Sample 1.0
AppPublisher=РГРТУ
DefaultDirName={pf}\Sample
DefaultGroupName=Пример
[Languages]
Name: "ru"; MessagesFile: "compiler:russian.isl"
[Types]
Name: "custom"; Description: "Выборочная установка";
Flags: iscustom
;
Name: "full"; Description: "Полная установка"
[Components]
Name: "program"; Description: "Приложение"; Types: custom full;
Name: "DB"; Description: "База данных"; Types: custom full;
Name: "ADO"; Description: "ADO"; Types: custom full;
[Files]
;Приложение
Source: "Example.exe"; DestDir: "{app}";
CopyMode: alwaysoverwrite; Components: program
;
;База данных
Source: "osql.exe"; DestDir: "{tmp}"; Components: DB
Source: "structure.sql"; DestDir: "{tmp}"; Components: DB
;
;Установка ADO
Source: "MDAC28.EXE"; DestDir: "{tmp}"; Components: ADO
[Run]
;Запуск установки ADO
Filename: "{tmp}\ MDAC28.EXE "; Parameters: ""; Components: ADO
;
;Запуск исполнения сценария
;для выполнения скрипта structure.sql,
;создающего БД на сервере с именем vpm1,
;именем пользователя sa, паролем sa
Filename: "{tmp}\osql.exe"; Parameters: "-S dc.vpm.rrtu -U sa -P sa
-i {tmp}\structure.sql"; Components: DB
[Icons]
;Ярлык приложения на рабочем столе
Name: "{userdesktop}\Пример"; Filename: "{app}\Example.exe"; WorkingDir: "{app}"; Components: program
;
;Ярлык приложения в меню Программы
11
Name: "{group}\Пример"; Filename: "{app}\Example.exe";
;
;Ярлык деинсталлятора в меню Программы
Name: "{group}\Удалить программу"; Filename: "{uninstallexe}"
|