Г.Тяпичев «Начальный курс быстрого программирования на СИ++». Глава 5.

 

Глава 5. Инсталляция проектов  и  пакеты.. 1

Установка и удаление программ. 1

Программа Install Maker 1

Как создать программу инсталляции с помощью Install Maker 2

Удаление приложения. 6

Программа CreateInstall 2000. 6

Программа InstallShield Express. 7

Установка программы InstallShield. 8

Начнем освоение InstallShield. 8

Вариант первый. 9

Вариант второй. 10

И еще один вариант программы.. 15

Некоторые адреса в Интернете. 16

Пакеты.. 16

Общее описание концепции пакетов. 16

Поддержка пакетов. 17

Вместо заключения. 19

Глава 5. Инсталляция проектов  и  пакеты

Установка и удаление программ

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

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

В Интернете предлагается множество программ, предназначенных для создания утилит установки (свободно распространяемые, условно-бесплатные и коммерческие версии). Я приведу список соответствующих Web-узлов в конце этой главы, чтобы вы могли сами их посетить.

Программа Install Maker

Программа Install Maker от компании ClickTeam выпускается в двух версиях: коммерческой, для работы с которой нужно купить лицензию, и свободно распространяемой, которая выводит на экран для конечного пользователя сообщение о том, как программой Install Maker (от компании ClickTeam) был создан этот файл инсталляции.

Для получения дополнительной информации по лицензированию программы Install Maker обращайтесь по адресу: http://www.clickteam.com.

 

Как создать программу инсталляции с помощью Install Maker

Программу инсталляции Install Maker можно загрузить с Web-узла компании ClickTeam. Также эта программа  встречается на  компакт дисках, часто прилагаемых к книгам по программированию.

Install Maker легко осваивается и прекрасно подходит для отдельных приложений, которые не требуют добавления таких более сложных средств, как  возможность работы с базой данных. В таких случаях лучше использовать программу InstallShield Express, которая поставляется с некоторыми версиями C++ Builder.

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

1.     Открытие окна приветствия (Welcome Screen).

После запуска в работу программы Install Maker на экране появляется главное окно программы, на первом плане которого размещается рабочее окно мастера инсталляции (Installation Wizard), изображенное на рис. 5.1. На этом этапе создания программы инсталляции вы можете либо продолжить “сотрудничество” с мастером, либо использовать основную среду разработки.

Рис. 5.1. Окно мастера инсталляции

Если вы впервые работаете с этим приложением, следует пользоваться услугами мастера до тех пор, пока вы лучше не узнаете эту программу. Не внося каких либо изменений нажимаем кнопку «Далее».

2.     Задание исходной и приемной папок.

Теперь задаем название  папки, в которой  хранятся все ваши файлы, подготовленные для дальнейшей обработки. Имеет смысл (для данного типа инсталляции) содержать все файлы в отдельной папке.

Рис. 5.2. Задание директории с исходными файлами

Чтобы разрешить использование подпапок, оставьте установленным флажок Include Sub-Directories (Включить подпапки). Нажимаем клавишу «Browse», находим и выбираем папку с исходными файлами. Нажимаем клавишу «Далее».

3.     Присвоение имени программе.

На этом этапе нужно указать язык инсталлируемого приложения: English (английский) или French (французский). Разработчики программы Install Maker – французы, отсюда и такой выбор языков.

Теперь введите имя для своего приложения инсталляции. Это имя будет выведено на всплывающем окне перед пользователем.

В любой момент работы с мастером вы можете щелкнуть на кнопке Preview (предварительный просмотр), чтобы увидеть, как будет выглядеть экран, когда пользователь дойдет до этого момента инсталляции. Нажимаем «Далее».

4.     Создание оболочки.

Найдите на этом экране основной выполняемый файл, для которого вы хотите создать пиктограмму, и присвойте ей соответствующее имя. У вас также есть возможность поместить эту пиктограмму на рабочий стол, хотя мы не советуем этого делать, поскольку слишком большое количество значков на рабочем столе только сбивает пользователя с толку. Не стоит пока задумываться над этим этапом, а нажимайте «Далее».

5.     Вставка дополнительной информации.

На этом экране вы можете ввести также дополнительный текст, (например, содержимое файла Readme или информацию о лицензировании). В данном разделе не предусмотрена кнопка открытия файла, но вам предлагается ввести текст в подготовленное для этого поле методом копирования и вставки заранее подготовленного текста. После ввода дополнительной информации желательно просмотреть весь текст, чтобы убедиться в его корректном форматировании (для этого щелкните на кнопке Preview). Можно также ввести некоторый текст вручную, как это показано на рис. 5.3 и нажать клавишу «Далее».

Рис. 5.3. Текст для дополнительной информации

6.     Настройка окна инсталляции.

На этом этапе можно выбрать желаемый размер экрана инсталляции и имя, которое будет видеть конечный пользователь при работе с программой инсталляции. Пока не стоит над этим задумываться, нажимайте на клавишу «Далее».

       7.    Задание растровых изображений для инсталляции.

В этой части мастер позволяет разместить в программе инсталляции два растровых изображения. Небольшое предупреждение: любые дополнительные файлы увеличивают общий размер программы инсталляции. Безусловно, это не проблема, если вы собираетесь распространять свое приложение на компакт-дисках, но если вы планируете использовать для этого Internet или гибкий диск (диски), конечный файл следует сделать как можно меньше (чем он меньше, тем привлекательнее для потенциальных покупателей).

Первое изображение, которое вы можете выбрать, должно иметь определенные размеры (128 пикселей в ширину и 280 пикселей в высоту) и использовать не более 256 цветов. Это изображение будет показано на главном вводном экране и располагаться слева от текста. Если вы плохо себе представляете эту картину, выберите любое изображение и щелкните на кнопке Preview.

Второе изображение будет использовано для фонового покрытия главного экрана и не должно содержать более 256 цветов. Чтобы посмотреть, как это будет выглядеть, щелкните на кнопке Preview. На первом этапе этого делать не следует. Нажимайте клавишу «Далее».

8.      Задание каталога инсталляции по умолчанию.

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

C:\Program Files\MyCompany\MyApp1cation

Путь, предлагаемый по умолчанию, может включать любое действительное устройство и папку; но вам вряд ли стоит вносить в него изменения.

Этот мастер также предоставляет возможность считывания каталога инсталляции из *.ini –файла или записи системного реестра. Нажимаем клавишу «Далее»

9.     Установка заключительных параметров (End Page Options).

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

Можно также сделать так, что по завершении программы инсталляции будет запускаться файл приложения.   А можно для начала ничего не вводить, а нажать клавишу «Далее».

10.                       Создание программы удаления приложения (UninstallProgram).

Следующий этап предлагает принять решение только по одной опции – созданию программы удаления приложения. Этот флажок следует устанавливать практически всегда (он как раз и установлен по умолчанию), если не существует каких-либо исключительных обстоятельств для принятия обратного решения, поскольку конечный пользователь должен всегда иметь возможность при необходимости удалить приложение, причем самым простым образом.

Итак, если эта опция выбрана, программа инсталляции создает небольшой .exe-файл, который пользователь сам сможет запустить для удаления приложения. Это можно сделать с помощью ярлыка, автоматически создаваемого во время инсталляции, или посредством опции Установка и удаление программ системной панели управления. Удаление приложения происходит очень корректно, поэтому следует просто нажать «Далее».

11  Завершение работы мастера.

Мы подходим к последнему экрану мастера, который позволяет сделать окончательный выбор – создавать программу инсталляции или нет. Если вы уверены в корректной установке всех параметров, смело щелкните на кнопке Finish (Готово), запустив тем самым механизм построения программы инсталляции. Если же вы не вполне уверены в корректной установке каких-либо параметров, просто щелкните на кнопке Back (Назад), чтобы еще раз перепроверить интересующие вас параметры.

12.Построение программы инсталляции.

Убедившись в вашем решении приступить к построению программы инсталляции, мастер предложит указать путь и имя для создаваемого .exe-файла. Поступайте по своему усмотрению, но желательно не помещать его в одну папку с основными файлами вашего приложения; в противном случае этот файл будет добавлен в программу инсталляции, если вы решите переделать ее.

Когда этот файл будет создан, желательно сохранить файлы своего проекта в безопасном месте на случай возможных будущих обновлений и исправлений.

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

Не стоит расстраиваться, если не все получилось с первого раза; просто вернитесь назад и внесите изменения в файлы проекта, а затем снова постройте программу инсталляции и снова ее протестируйте. Но сначала не забудьте удалить текущую версию приложения.

На рис. 5.4 изображен рабочий экран при начале инсталляции программы «Induktiw».

Рис. 5.4. Экран при инсталляции программы Induktiw

13.Создание дополнительных пиктограмм и дополнительных файлов.

 По окончании сотрудничества с мастером вы можете создать дополнительную пиктограмму для своего приложения в главном интерфейсе пользователя. Кроме того, возможно, вы захотите иметь отдельную пиктограмму для справочного файла или файла Readme .txt, если таковые вами предусмотрены.

Для этого выберите вкладку Files, а затем – файл, для которого собираетесь создать пиктограмму. В правой части экрана есть два поля Folder (Папка) и Name (Имя). Укажите папку, в которой желаете установить пиктограмму, и присвойте ей подходящее имя.

Удаление приложения

Программа инсталляции должна предусматривать возможность для конечного пользователя удалить приложение. В большинство генераторов программ инсталляции это средство уже встроена и, подобно Install Maker, устанавливается автоматически, поэтому вам не нужно даже беспокоится о включении или добавлении этой функции.

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

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

Чтобы реализовать такую проверку, запустите свою программу инсталляции, а по ее завершении выполните процедуру удаления, чтобы узнать, остались ли неудаленные файлы. Присутствие “остаточных” файлов возможно в том случае, если пользователь добавил в каталог инсталляции свои файлы (или они были созданы во время работы с вашим приложением) либо у вас не была автоматически установлена опция удаления приложения.

Очень трудно (практически невозможно) добиться “чистоты” удаления путем автоматического создания средства удаления генератором программы инсталляции. Дело в том, что это средство удалит лишь файлы и записи в системном реестре, установленные при запуске программы инсталляции. Это средство не в состоянии удалить ничего, что было создано во время работы вашего приложения.

Иногда среди оставшихся файлов могут оказаться такие, которые и должны остаться на компьютере конечного пользователя. Например, ваше приложение может использовать некоторые DLL-файлы, которые необходимы системе Windows для продолжения работы. В такой ситуации пользователь увидит сообщение о том, что не удален системный файл, и ему будет предложено подтвердить намерение его удалить.

 

Программа CreateInstall 2000

Программа разработана компанией Gentee, сайт в Интернете: http://www.gentee.com. Для связи с компанией можно использовать email: info@gentee.com

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

Благодаря простоте освоения программа доступна даже начинающим программистам, но пользуется популярностью и у профессионалов.

Перечислим основные возможности программы:

q       Позволяет создавать самоизвлекающиеся и многотомные архивы;

q      Дает возможность прочитать файлы лицензии и  файл readme;

q      Запускать ваши .dll и исполняемые файлы;

q      Легко выполняет деинсталляцию программы;

q      Создает регистрирующие *.INI файлы;

q      Устанавливает файлы в любые директории;

q      Модернизирует системные файлы;

q      Выдает на экран в течение установки красочные рисунки;

q      Защищает процесс установки паролем;

q      А также много  других функций и возможностей …

На рис. 5.5 показано главное окно этой программы.

Рис. 5.5. Окно программы CreateInstall

CreateInstall часто входит в состав пакетов по программированию наряду с другими программами, может встречаться на CD-ROM дисках, в Интернете.

Программа InstallShield Express

На компакт дисках с различными версиями программ C++ Builder и Delphi очень часто бывает размещена программа InstallShield Express. Эта программа представляет собой один из самых простых вариантов программ, выпущенных под таким же названием, но предназначенных для коммерческих целей. Поэтому можно предположить, что программа InstallShield Express наверняка имеется в вашем архиве и что вам очень хотелось бы иметь подробное описание приемов работы с этой программой.

В этом разделе я постараюсь подробно рассказать о том, каким путем можно создать собственную программу инсталляции для готового приложения с использованием InstallShield Express. При этом я не ставлю перед собой невыполнимую задачу рассмотреть сценарии создания программ инсталляции для всех известных типов приложений, а постараюсь познакомим вас с основами построения наиболее простых  программ. InstallShield Express предоставляет массу возможностей, которыми вы, как разработчик, можете воспользоваться. Закладываемый здесь фундамент подойдет для любого разрабатываемого приложения, дополнения же при необходимости вы легко сделаете сами.

Установка программы InstallShield

Большинство из вас по крайней мере визуально знакомы с продуктами разработки, созданными с помощью программы InstallShield. Посмотрите на рис. 5.6, на рис. 5.7 и вы сразу вспомните, что встречались ранее с подобными картинками при установке на свой компьютер каких-то программ.

Рис. 5.6. Первое окно программы, созданной с помощью InstallShield

 

Рис. 5.7. Следующее окно той же программы

Еще раз следует уточнить, что версия программы InstallShield Express, которая поставляется в составе C++ Builder, не является полной коммерческой версией. Это специальная версия, подготовленная для C++ Builder, и в этом варианте некоторые дополнительные возможности полной версии недоступны. Однако в ней есть все, что может понадобиться каждому разработчику для распространения своих приложений в реальном мире.

Начнем освоение InstallShield

После установки приложения InstallShield Express следует решить о типе инсталляции, который подойдет именно для вашего приложения. Например, установили ли вы при компиляции приложения в среде C++ Builder такой параметр компоновщика, как Use Dynamic RTL (Использовать динамическую библиотеку этапа выполнения)? Если да, то придется ли вам подключать дополнительные .dll-файлы к вашему приложению? Кроме того, если вы выбрали опцию Build with Runtime Packages (Построить с пакетами времени выполнения) во вкладке Packages (Пакеты), то вам придется добавить дополнительные файлы в вашу программу инсталляции; в противном случае она не будет работать на другом компьютере. При выборе этих опций происходит жесткий вызов соответствующих файлов. Все дело в том, что если не выбрать эти опции, ваше приложение станет большим по размеру (я имею в виду *.exe- или * .dll-файл, с которым вы работаете), и наоборот. Но чтобы ваша программа могла работать на другом компьютере, необходимо включить некоторые дополнительные файлы. Подробнее об этом смотрите ниже, в разделе «Пакеты».

Завершив разработку своего приложения, не забудьте обо всех файлах, которые необходимы для его работы на другом компьютере. Сюда входят справочные файлы, файлы Readme, DLL-библиотеки и файлы данных (файлы базы данных и файлы примеров). Составив список всех необходимых файлов, лучше всего поместить их в отдельную папку (директорию).

При первоначальном использовании приложения InstallShield вам будет предложено указать тип проекта инсталляции, который вы ходите создать. На рис. 5.8 изображено первое рабочее окно программы.

Рис. 5.8. Первое рабочее окно InstallShield

Щелкните на экране Create a New Setup Project (Создать новый проект установки). Затем присвойте своему проекту установки подходящее имя и выберите вариант создания этого проекта в новой папке. Это обеспечит сохранение файлов инсталляции и файлов проекта в одном легкодоступном месте. Второе рабочее окно изображено на рис. 5.9.

Рис. 5.9. Следующее рабочее окно

На этом этапе следует сделать выбор между двумя вариантами создания инсталляционного проекта:

q      Создание с помощью мастера разработки проекта Project Wizard, этот вариант создается быстро и годится для опытных разработчиков, которые предусмотрели заранее все тонкости предстоящей работы.

q      Создание проекта в режиме Blank Setup Project, когда придется ответить на массу вопросов.

Вариант первый

Сначала рассмотрим в картинках первый вариант – разработка проекта с помощью Project Wizard. Для этого в окне, изображенном на рис. 5.9, следует внизу указать полный путь к папке, в которой будет создаваться проект и выбрать команду Create.

На рис. 5.10  показано следующее окно Project Wizard, в котором предлагается уточнить название проекта и установить пути к папке с рабочей документацией.

Рис. 5.10. Уточнение названия проекта и путей к папке с документацией

На рис. 5.11 показано следующее окно Project Wizard, в котором предлагается решить вопрос о возможности дальнейшего совершенствования программного продукта.

Рис. 5.11. О возможности дальнейшего совершенствования

На следующем окне, изображенном на рис. 5.12, предлагается выдать всю информацию о разработчике программы.

Рис. 5.12. Информация о разработчике

 Далее Project Wizard предлагает ввести перечень особенностей, которые будут иметь место при создании проекта. Следует внимательно отнестись к этому моменту. Диалоговое окно с этим предложением изображено на рис. 5.13.

Рис. 5.13. Предложение ввести перечень особенностей

На окне, изображенном на рис. 5.14 предлагается ввести все файлы, которые входят в комплект разработанной программы и должны быть включены  в проект. Для этого выбирается команда Add Files.

Рис. 5.14.  Перечень файлов, входящих в комплект программы

На рис. 5.15 изображено это же окно с внесенными названиями файлов, а на рис. 5.16 изображено диалоговое окно, с помощью которого выбираются названия файлов и вносятся автоматически в окно Project Wizard.

Рис. 5.15. Названия файлов внесены

 

Рис. 5.16. Диалоговое окно выбора файлов

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

Рис. 5.17. Выбираем нужные пункты меню

Следующее окно предлагает указать условия регистрации программы. Это окно изображено на рис. 5.18. Если регистрация не предусмотрена, то следует просто выбрать клавишу Далее. 

Рис. 5.18. Вопросы регистрации программы

В следующем окне, изображенном на рис. 5.19, предлагается решить вопрос о том, следует ли вносить в проект программы для инсталляции следующие вопросы:

q      Вопрос о том, принимает ли пользователь условия лицензии;

q      Следует ли делать выбор вида инсталляции (типовой, минимальный или выборочный)

q      Предлагать ли для прочтения информационный файл.

Рис. 5.19. Вопросы организации процесса инсталляции

На рис. 5.20 представлено заключительное окно мастера Project Wizard. Здесь следует внимательно ознакомиться со всеми данными и, в случае обнаружения ошибок, вернуться к первоначальным пунктам.

Рис. 5.20. Итоги работы Project Wizard

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

Вариант второй

Если на рис. 5.9 вы выбираете Blanc Setut Project, то на экране появляется рабочее окно второго варианта создания проекта, изображенное на рис. 5.21.

Рис. 5.21. Окно второго варианта

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

Я не стану объяснять подробно все пункты этого обширнейшего меню. Желающий воспользоваться этим вариантом создания проекта инсталляционной программы сможет сам во всем разобраться. Ниже дам только некоторые советы общего характера по некоторым из разделов меню.  

 

Раздел Global Information
(Основная информация и характеристики)

Рабочее окно начала этого раздела показано на рис. 5.22.

Рис. 5.22. Основная информация

 

Начните работу на главном экране с ввода имени программы, которое впоследствии будет представлено в диалоговом окне Add/Remove Programs (Установка и удаление программ).

Если вы выберете выполняемое приложение, InstallShield автоматически добавит заданный выполняемый файл в группу Program Files диалогового окна Groups and Files (Группы и файлы) и создаст пиктограмму для выполняемого файла в диалоговом окне General Icon Settings (Общие установки пиктограмм), если такого элемента еще нет в упомянутых диалоговых окнах.

Информация о версии должна быть сформирована на основании версии вашего приложения. Если вы установили номер версии в C++ Builder, он автоматически будет размещен в соответствующем поле. Программа InstallShield использует этот номер версии для предотвращения перезаписи старых версий приложения новыми.

Соответствующим образом должно быть также установлено имя компании. Ваше приложение автоматически будет зарегистрировано в системном реестре, а все пути инсталляции и элементы стартового меню также получат значения по умолчанию.

Проверьте значения папки-приемника. Возможно, вам понадобится заменить вариант, предложенный программой InstallShield. В начале выражения пути должен остаться макрос <Program Files>. Папка вершины иерархического адреса на разных компьютерах может быть различной, поскольку не в каждом из них копия Windows инсталлирована  на диске C:\, поэтому и конечным пользователям следует дать возможность выбора, где инсталлировать ваше приложение.

В разделе Main Window (Главное окно) введите текст и сообщите, какое графическое изображение вы желаете использовать в качестве фона во время инсталляции приложения. Это графическое изображение должно состоять только из 16 цветов. Если вы попытаетесь использовать 256 цветов, то получите от программы InstallShield сообщение об ошибке. Однако можно безнаказанно проигнорировать это сообщение и продолжать работу со своим проектом, если, конечно, вы уверены, что все конечные пользователи будут иметь оборудование, позволяющее отображать 256-цветные (и более) изображения. В противном случае изображение будет выглядеть искаженным.

В разделе Features (Возможности) рекомендуется оставить опцию Automatic Uninstaller (Автоматическое средство удаления приложения) установленной. Разъяснения по назначению этой функции выходят за рамки этой главы.

Раздел Specify Application Data    (Спецификация данных о программе)

Программа InstallShield собирает файлы в логические группы, которые могут располагаться в отдельных поддиректориях. Все файлы одной группы при инсталляции вашего приложения будут помещены пользователем в одну папку. Обычно для параметра File Update Method (Метод обновления файлов) в разделе Properties оставляют значение, предложенное по умолчанию. У вас должна быть группа файлов приложения. Могут быть дополнительные группы для компонентов, подготовленные ранее. Если вы будете использовать BDE, необходимо создать группу файлов для базы данных. Имя приемника должно совпадать с тем, что вы ввели во время работы с мастером установки BDE (BDE Setup Wizard).

Если у вас есть системные файлы Windows (например, DLL- и OCX-файлы), вы должны назначить для них в качестве приемника значение <WINSYSDIR>. Не стоит забывать о .dll-библиотеках, импортированных в ваш проект.

В некоторых случаях у вас может появиться необходимость установки некоторых параметров, специфичных для  Borland C++ Builder. 

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

 

Раздел Customize the Setup Appearance (Выбор настройки оформления)

 

Мы подошли к довольно важной части программы InstallShield. В этом разделе нужно указать, в каком виде программу инсталляции увидит конечный пользователь. Здесь у вас большой простор для выбора различных деталей.

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

Растровое изображение приветственного экрана всегда выглядит профессионально, но важно найти компромисс в размерах. Добавление растрового изображения в программу инсталляции неизбежно увеличит ее размер, и если вы собираетесь распространять ее через Internet, этот фактор следует обязательно принять во внимание. Однако если ваше приложение будет распространяться посредством компакт-дисков, размер не имеет существенного значения.

У вас также должно быть место для документов, предназначенных для первоначального ознакомления (файлы Readme) и касающихся лицензирования программных продуктов. Многие производители бесплатных и условно-бесплатных Internet-приложений советуют помещать такую информацию в программу инсталляции, а также в основной Zip-файл вашего приложения. Поскольку печальная истина состоит в том, что многие пользователи не читают такого рода информацию, то, если вы предоставите им шанс сделать это во время ожидания, они не будут на вас в обиде.

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

У вас также есть возможность использовать диалоговые окна Setup Type (Тип установки) и Custom Setup (Пользовательская установка). Если вы не используете несколько компонентов установки приложения, эти диалоговые окна вам не нужны.

Почти для всех приложений имело бы смысл включить диалоговое окно Program Folder (Папка программы). Эта папка предназначена для хранения пиктограмм приложения. При желании пользователь сможет изменить предлагаемое имя этой папки.

Обычно в программу инсталляции включают диалоговые окна Start Copy (Начать копирование) и Progress (Отчет о ходе выполнения). Они вселяют в пользователя уверенность, что процесс инсталляции приложения не завис, а еще пока «дышит».

Информационные экраны – прекрасный способ рассказать пользователям о характеристиках инсталлируемого программного продукта. Информационные экраны представляют собой растровые изображения с одним и тем же именем, за которым следует некоторое число. Они будут появляться на экране в процессе инсталляции, но при этом следует иметь в виду следующее.

q      Размеры приложения. Чем больше растровых изображений вы включите, тем больше станет размер программы инсталляции.

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

Диалоговое окно Setup Complete (Установка приложения завершена) используется не столько для того, чтобы констатировать факт завершения инсталляции, сколько для того, чтобы напомнить о необходимости перезагрузки компьютера перед использованием приложения, если в него включены .dll, .ocx- или любые другие пакеты времени выполнения, которые не были обновлены во время инсталляции.

Раздел Prepare for Release (Подготовка к реализации)

В этом разделе хочу обратить ваше внимание на каждый из трех входящих в его состав подразделов. Это заключительный этап работы с InstallShield. Именно здесь все файлы вашего проекта собираются в единое целое и превращаются в программу инсталляции – подобно проекту в C++ Builder.

 

Build Your Release (Создание программы для реализации)

Сначала выберите подходящий тип носителя данных. Если вы выберете тип 1,44 Мбайт, программа разобьет вашу программу на пакеты размером 1,44 Мбайт, готовые к копированию на дискету (дискеты).

Если вы хотите сделать однофайловую инсталляцию, выберите в качестве типа носителя данных вариант CD-ROM (компакт-диск). Выбрав тип носителя, щелкните на кнопке Build (Построить), и программа инсталляции будет поострена за вас. Если в процессе построения вы получите ошибки, исправьте их и снова щелкните на кнопке Build. Проект следует сохранить, чтобы впоследствии в него можно было внести изменения – добавить или удалить файлы, либо вообще изменить что-то. После этого снова вернитесь к этому разделу, выберите тип носителя и щелкните на кнопке Build – в этот момент можно считать сделанной львиную долю работы, ведь вы создали идеальную основу для будущих обновлений!

Distribute Yiur Release (Создание дистрибутива)

Если вы собираетесь распространять свое приложение посредством дискеты (дискет), можете использовать это диалоговое окно, чтобы сделать для себя настоящие дисковые копии. Предлагаемые здесь опции чрезвычайно просты. Выберите папку или устройство, на которое вы хотите скопировать дискеты, и щелкните на кнопке Copy All Disk Images (Скопировать все копии дисков).

Следует отметить, что эта часть программы InstallShield – необязательна для выполнения, поскольку дисковые копии уже были созданы и сохранены вами в папке, указанной при создании проекта инсталляции. Все, что вам осталось сделать, -- скопировать на свою дискету содержимое каждой папки: помеченной именем Disk1 – для диска 1, Disk2 для диска 2 и т. д. Только сначала не мешало бы убедиться в том, что у вас достаточно дискет, отформатированных с использованием соответствующих меток.

Test Your Release (Тестирование)

После создания программы инсталляции необходимо ее протестировать на каком-нибудь компьютере. Сначала тестировать ее можно на том же компьютере, где находится проект инсталляции, для того, чтобы убедиться в работоспособности пользовательского интерфейса (растровые изображения, формат файла Readme и пр.). Затем, если необходимо внести некоторые изменения, следует перестроить проект (обычно это делается  без проблем), и снова провести тестирование. Так следует делать до тех пор, пока, наконец, не будете полностью уверены, что все выполнено правильно, ничто не забыто.

Удовлетворившись состоянием программы инсталляции, можете перейти к другому компьютеру и по-настоящему проверить работу программы инсталляции своего приложения. Идеальным вариантом было бы инсталлировать продукт на чистую версию Windows, но, к сожалению, мы живем не в идеальном мире.

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

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

 

И еще один вариант программы

В Интернете, по адресу http://bersoft.com можно найти программу Bersoft EasySetup. Кроме того, информацию о программе можно получить по электронной почте info@bersoft.com.

Эта программа частично оплачиваемая, если вы предполагаете её постоянно использовать в своей работе, то нужно заплатить определенную сумму. Если вы попробуете использовать неоплаченный вариант, то программа все равно выполнит полностью свои функции, но при этом на экране постоянно будет присутствовать напоминание о сайте  http://bersoft.com.

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

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

Рис. 5.23. Главное окно программы

Далее следует щелкнуть клавишей мышки на пиктограмме головастого человечка, изображенного слева в вертикальном ряду пиктограмм. На экране возникнет диалоговое окно мастера разработки программы, изображенное на рис. 5.24.

Рис. 5.24. Вопросы мастера

Ответив на все вопросы мастера выбираем в меню пункт Screen 1 и получаем на экране окно, изображенное на рис. 5.25.

Рис. 5.25. Первый экран мастера

В центре окна располагается небольшое диалоговое окно, которое в дальнейшем будет выводиться на экран при инсталляции вашей программы. Все текстовые строки в этом окне заменяемые, т.е. их можно переписать русским текстом.

Закончив работу с первым экраном, переходим на Screen 2 и так далее, до конца.

Программа, на мой взгляд, очень интересная.

 

Некоторые адреса в Интернете

Ниже перечислены адреса в Интернете, имеющие отношение к другим средствам создания программ инсталляции.

Setup Factory:  http://www.indigorose.com/

Inno Setup:  http://www.jordanr.dhs.org/

Wise Setup:  http://www.wisesolutions.com/imakfeat.htm

 

Пакеты

Общее описание концепции пакетов

Одним из основных достижений C++ Builder является то, что в результате проектирования получается автономный выполняемый файл  *.exe, в создании которого были задействованы многочисленные внутренние ресурсы C++ Builder. При этом многие данные из этих ресурсов после компиляции размещаются в этом выполняемом файле. Причем по сравнению с рядом других систем, позволяющих создавать автономные модули, размеры файлов в C++ Builder не очень большие. Автономным называется файл, который может запускаться на любом компьютере,  не требует наличия на компьютере пользователя не только среды C++ Builder, но и каких-либо специальных библиотек C++ Builder. Так что при разработке отдельного проекта, предназначенного для работы на любом компьютере, целесообразно создавать такой автономный выполняемый файл.

Однако, если у вас создано много выполняемых файлов или если вам надо передавать их по сети множеству пользователей, то размеры файлов становятся существенным критерием разработки. Стремление уменьшить затраты на хранение и распространение выполняемых файлов привело фирму Borland к концепции пакетов.

Пакеты (Packages) – это специальные динамически присоединяемые библиотеки DLL, содержащие библиотеки визуальных компонентов и другие объекты, функции, процедуры и т. д. Эти DLL позволяют вам создавать очень небольшие выполняемые модули, обращающиеся за поддержкой к пакетам. Вы можете также скомпилировать в пакеты свои собственные компоненты и библиотеки. Файлы пакетов имеют расширение .bpl (Borland package library), чтобы отличать их от обычных DLL.

Пакеты разделяются на два типа: пакеты времени проектирования и пакеты времени выполнения.

Пакеты времени проектирования C++ Builder вызывает в процессе проектирования . Эти пакеты используются для установки компонентов в палитре компонентов среди разработки C++ Builder или для создания специализированного редактора свойств для заказных компонентов.

Пакеты времени выполнения содержат библиотеки визуальных компонентов C++ Builder. Вы можете добавить к C++ Builder заказные пакеты, разработанные вами или где-то приобретенные. При использовании пакетов времени выполнения вы должны передавать пользователю не только ваш выполняемый модуль, но и все пакеты времени выполнения, которые используются им. За счет того, что большая часть кодов помещается в этих пакетах, размеры ваших выполняемых модулей существенно сокращаются. Например, модуль в 350 КБ может быть сокращен примерно до 22 КБ. Вы передаете пользователям один раз все пакеты и устанавливаете их на компьютерах клиентов. А затем, когда вы делаете новые приложения, вам достаточно передавать только небольшие исполняемые модули.

Так что у вас есть две альтернативы:

q      Создавать законченные, автономные выполняемые модули

q      Использовать поддержку пакетов времени выполнения

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

Поддержка пакетов

Чтобы использовать пакеты в вашем приложении, вы должны сначала обратиться к поддержке пакетов, а затем компилировать и строить свое приложение. Поддержка пакетов определяется настройками соответствующих опций проекта. Для установки этих опций выполните команду ProjectèOptions и в появившемся диалоговом окне опции проекта Project Options выберите страницу Packagesпакеты. Ее вид показан на рис. 5.26.

Рис. 5.26. Страница Packages окна опций проекта

В верхнем окне Design packages вы можете увидеть список используемых пакетов времени проектирования. Вы можете добавить новый пакет (кнопка Add), или удалить пакет (кнопка Remove или щелчок на окне индикатора рядом с выделенным пакетом). Впрочем, удалять системные пакеты вряд ли стоит. Лишние пакеты никак не повлияют на ваше приложение. Но зато, когда вы захотите создать новое приложение с компонентами, хранящимися в удаленном пакете, вам это не удастся сделать. Впрочем, в этом случае вы можете вновь установить требуемый пакет кнопкой Add.

Кнопка Edit (редактировать) доступна только если в окне Design packages выделен пакет, созданный вами. Для системных пакетов эта кнопка не доступна.

Кнопка Components позволяет вам просмотреть список компонентов, хранящихся в выделенном вами пакете.

Индикатор Built with runtime packages устанавливает режим поддержки пакетов. Если этот индикатор установлен, то выполняемый модуль вашего приложения будет требовать поддержки пакетов времени выполнения. При выключенном индикаторе Built with runtime packages вы создадите полностью автономный выполняемый модуль. Но для этого нужно также выключить поддержку пакетов времени проектирования. Но об этом чуть позже.

Индикатор Default позволяет принять установленную вами конфигурацию пакетов по умолчанию для всех новых проектов.

Чтобы почувствовать, что дают пакеты времени выполнения, проведите небольшой эксперимент. Постройте простейшее приложение C++ Builder с пустой формой:

1.     Откройте новый проект. Сохраните его под именами по умолчанию project .dpr и unitl .cpp.         

2.     Выполните команду Project==>Options.

Рис. 5.27. Страница Linker окна опций проекта

3.     В раскрывшемся окне опций проекта Project Options выберите страницу Linker (рис. 5.27) и выключите на ней индикатор Use dynamic RTL (использовать динамическое связывание). Перейдите на страницу Packages и выключите на ней индикатор Built with runtime packages (строить с пакетами времени выполнения). Перейдите на страницу Compiler и нажмите кнопку Release, обеспечивающую создание файла без отладочной информации.

4.     Выполните команду ProjectèBuild. В результате будет создан выполняемый модуль project1 .exe без поддержки пакетов.

5.     Посмотрите размер получившегося файла, воспользовавшись для этого, например, программой Windows «Проводник» или выполните команду ProjectèInformation for project. Команда открывает окно информации о проекте, в котором вы сможете увидеть, что размер вашего выполняемого файла 359936 байт (351 КБ). Это достаточно внушительный размер, поскольку файл включает в себя все скомпилированные в него коды библиотеки компонентов.

6.     Опять выполните команду Project Options на странице Linker включите индикатор Use dynamic RTL, а на странице Packages включите индикатор Built with runtime packages.

7.     Перестройте ваш выполняемый модуль, выполнив команду ProjectèBuild (как в пункте 4).

8.     Посмотрите теперь размер вашего файла project .exe с поддержкой пакетов. Размер сократился до 22528 байт (22 Кб).

Как видите, выигрыш весьма значительный: без поддержки пакетов размер файла составляет 359936 байт (351 КБ), а с поддержкой – 22528 байт (22 Кб), т. е. примерно в 16 раз меньше. Вроде бы прекрасно! Но учтите, что прежде, чем пользователь сможет на своем компьютере применить ваше приложение, на этом компьютере надо поставить используемые приложением пакеты.

Узнать, какие пакеты и DLL нужны для распространения вашего приложения можно с помощью программы tdump .exe, поставляемой вместе с C++ Builder и находящейся в каталоге …\bin. Эта программы работает в DOS.

Таким образом, в каждом конкретном случае надо решать, создавать ли вам автономный выполняемый модуль, или использовать поддержку пакетов времени выполнения.

q      Очевидно, что если вы создаете приложение для возможной его работы на любом компьютере, то следует  делать автономный модуль. Для этого индикатор Use dynamic RTL на странице Linker и индикатор Built with runtime packages на странице Packages (окно Proekt Options) должны быть выключены.

q      Если вы не планируете передавать кому-либо созданное приложение, то делать из него автономный модуль не следует из-за экономии места на диске.

 

Вместо заключения

Цель этой главы  – дать представление об инсталляции приложений,  подготовке программ к распространению. Несмотря на то что все эти методы рассматривались со ссылкой на C++ Builder, они применимы к программным продуктам, разрабатываемым с помощью любых RAD-средств. Использование этих методов может значительно улучшить качество приложений и поднять их в глазах пользователей.

Создавая свои разработки для всеобщего применения, всегда следует помнить о том, что совместно с созданными вами программными файлами  должны работать файлы подключаемых библиотек, расположенные в директориях управляющей системы. Поэтому не забывайте почаще обращаться к разделу этой главы, который называется «Пакеты».