Создание дистрибутивов клиентских приложений БД с помощью программы...
17.05.12 17:57
Предыдущая статья >> [Разработка скриптов для создания и заполнения баз данных]

Понятие дистрибутива

Дистрибутивом приложения называют специальный файл, при запуске которого происходит установка данного приложения на компьютер пользователя. Дистрибутив небольших приложений обычно представляет собой файл с именем 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}"




Следующая статья >> [Создание отчетов]
 

Выбор профессии - программист

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

Detail

Известные языки программирования - авторы и история

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

Detail

Программирование как основа интернета

Программирование как основа интернета

С появлением интернета появилось очень большое количество новых специальностей, ориентированных на интернет бизнес и всевозможные услуги. Кто-то занялся созданием сайтов, кто-то их продвижением, некоторые используют уже готовые сайты для продвижения своих товаров и услуг, а кто-то выбрал другие направления, которых на сегодняшний день насчитывается уже несколько десятков. Какие бы направления в интернете не выбирали для себя люди, все это начинается с программирования. Интернет состоит из множества сервисов и всевозможных сайтов, а для их создания необходимо программирование и специалисты, умеющие это делать. По сути дела написать сам сайт не так уж и сложно, но вот составить различные программы – это уже более сложный уровень, поэтому оставим это для знающих людей. Статистика свидетельствует, что с начала кризиса 2008 года и до середины…

Detail

Как использовать справку в программах Delphi

Как Delphi программы работают с файлами справкиПрежде чем ваша Delphi программа сможет показывать справку - вы должны сказать вашему приложению (т.е. программе), что она (справка) у вас вообще есть. Делается это установкой свойства HelpFile у объекта Application или формы.В каждом VCL приложении Delphi есть глобальный объект Application ("Приложение") типа TApplication. У этого объекта есть свойства и методы, влияющие на всё приложение целиком. И для активации справки у него есть свойство Application.HelpFile.Когда этому свойству присвоено значение, вы можете использовать методы и свойства объекта Application и ваших форм (окон), чтобы работать с вашей справкой. Значением свойства является имя файла справки вашей программы. Формат справки может быть любым из поддерживаемых вашим приложением (об этом чуть позже). Сейчас только отметим, что разные форматы файлов…

Detail

Отличные дизайнерские решения для вашего интернет-магазина на OpenCart

Отличные дизайнерские решения для вашего интернет-магазина на OpenCart

На сегодняшний день открыть собственный интернет-магазин — задача несложная. Благодаря шаблонам для сайтов, сделать это можно без особых усилий от одного до нескольких дней (в зависимости от объемов вашей деятельности). Что же нужно сделать для того, чтобы быстро и выгодно открыть собственный интернет-магазин? Если вы уже решили не заказывать магазин у веб-дизайнера, а воспользоваться шаблонной разработкой, здесь вы станете перед выбором, какую же систему управления предпочесть. OpenCart — именно тот движок, который способен обеспечить интернет-магазин максимальным функционалом и надежностью. Множество онлайн-магазинов уже функционируют по всему миру на платформе OpenCart, а специально разработанные для движка шаблоны делают веб-проекты уникальными и неповторимыми в интернете. Лидер по производству шаблонов для сайтов TemplateMonster, среди огромного множества разработок, имеет в своей библиотеке коллекцию шаблонов OpenCart. Специально разработанные…

Detail

Самый легкий способ разблокировать windows самостоятельно

Развитие современных технологий обусловило появление большого количества вирусов, которые так и пытаются навредить спокойному времяпровождению в Сети. Стоит отметить, что их разнообразие поражает. С каждым днем возникают новые версии, которые требуют новых методов борьбы и устранения. Как результат, с начала 2012 года к активному вредительству приступила новая версия Trojan. Программа рассчитана на вымогательство у пользователей, которые в безвыходной ситуации готовы заплатить требуемую сумму для того, чтоб компьютер функционировал в нормальном режиме. Если проверить статистические данные, подготовленные компанией Winlock, то блокировка windows привела в замешательство не менее 3 миллионов честных пользователей. Запуская компьютер, люди приходят в недоумение. На экране светится сообщение яркого цвета, что работа не будет продолжена, пока пользователь не отправит сообщение на указанный номер. Как правило, сообщение является платным.…

Detail

Отличие и общие черты форумов и групп в социальных сетях.

Многие специалисты в сфере индустрии развития интернета заявляют, что в будущем форумы исчезнут и их место займут социальные сети. Но это весьма спорно, так как и по наши дни форумы различных тематических направлений пополняют свои аудитории. Однако стоит признать, что былое количество регистраций уменьшилось почти вдвое. Связано это с развитием социальных проектов и наличия в них более простой процедуры общения.Стоит рассмотреть общие черты и различия этих двух сообществ. Форум, как и социальные сообщества делятся по тематическим направлениям. К примеру сообщества на тему кулинария в обоих интернет проектах будут содержать рецепты блюд и комментарии по изготовлению. Аналогично и другие темы. Возможно размещать картинки, видеозаписи, аудиофайлы, при наличие прав - ветки и темы обсуждений. Руководит форумом и социальными сообществами модератор, также может…

Detail

Современные способы оптимизации сайта

Получение внешних ссылок для продвижения сайта в наши дни не является основным способом эффективной раскрутки. С появлением социальных сетей поисковые системы начали высчитывать пользовательский фактор.

Detail

Delphi Prism FAQ

Delphi Prism - это новое решение от компании Embarcadero Technologies для разработки приложений .NET. В этом решении на базе Visual Studio вы сможете использовать существующие навыки программирования на Delphi для создания приложений .NET. При этом можно использовать преимущества таких новейших и лучших технологий .NET, как WinForms, WPF, ASP.NET и LINQ. Конечно, вы также сможете разрабатывать приложения для баз данных с использованием знакомой функциональности dbExpress и клиентов .NET, которые подключаются к собственным серверам DataSnap.Является ли Delphi Prism частью CodeGear RAD Studio 2009?Да. Продукт Delphi Prism доступен как отдельно, так и в составе той части пакета CodeGear RAD Studio 2009, которая предназначена для работы с технологиями .NET.Доступна ли пробная версия Delphi Prism?Да. Пробные версии Delphi Prism и пакета RAD Studio 2009 (в…

Detail

Отправлять электронную почту

В D5 Вы можете попробовать использовать компоненты TNMSMTP и TNMPOP3,в D6 и Kylix компоненты от NetMasters заменены компонентами Indy. Алгоритм простой (для сторонних компонентов он принципиально ничем не отличается): необходимо заполнить структуру PostMessage; отправить эту структуру при помощи метода SendMail. Структура PostMessage: (*) FromName: string - имя отправителя; FromAddress: string - Почтовый адресс отправителя ReplyToAddress: string - Адрес, по которому следует ответить на письмо; Organization: string LocalProgram: string - Имя почтовой программы отправителя; (*) ToAddress: TStringList - Почтовый адрес главного получателя (ей) ToCC: TStringList - Список получателей Carbon Copy ToBCC: TSringList - Список получателей Blind Carbon Copy Attachments: TStringList - Список вложений Body: TStringList - Собственно текст письма Subject: string - Строка темы письма. (*) - помечены обязательные поля. С…

Detail