Что такое инсталляционная программа

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

Для сравнения инсталляторов воспользуемся приложением Ins — это простенький текстовый редактор, за 10 минут созданный в MS Visual C++, MFC. Он состоит из двух файлов: C:InS.srcins.exe и C:InS.srcmfc42.dll. Чтобы корректно установить его на другой компьютер, нужно:

1. скопировать исполняемый файл ins.exe на жесткий диск;
1. скопировать в системный каталог Windows файл библиотеки MFC mfc42.dll;
1. прописать в системном реестре каталог установки и текущий каталог редактора;
1. создать каталог С:Мои документы — текущий каталог редактора по умолчанию;
1. создать ярлык для запуска Ins на рабочем столе и в меню Пуск => Программы панели задач.

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

Световая инсталляционная программа ЦПКиО им. Горького

Одним из гигантов производства инсталляторов (причем гигантов в мировом масштабе) признана компания InstallShield. На ее сайте (http://www.installshield.com) представлена целая линейка этих продуктов — различных по сложности и стоимости (кстати, после регистрации можно получить пробную 30-дневную версию:

· InstallShield Developer (поддержка распараллеленной установки, интеграция с Visual Studio .NET, создание патчей, визуальный редактор диалогов, контроль исходного кода);
· InstallShield Professional (скриптовый язык, средства отладки, многочисленные настройки пользовательского интерфейса, возможность создания дистрибутивов под Web);
· InstallShield Express — облегченная версия, простая в использовании, поставляется с Delphi 5 и Visual Studio 6;
· InstallShield MultiPlatform (поддержка Linux, Solaris, HP-UX, AIX, OS/2, Windows и OS/400, функционирование на основе Java VM);
· InstallShield AdminStudio (системное администрирование, управление рабочим процессом, разрешение конфликта приложений, поддержка модулей MSI (Microsoft Installer));
· InstallShield DemoShield — средство создания итерактивных презентаций, каталогов на компакт-диске;
· InstallShield Update Service — инструмент для создания и управления обновлениями программного обеспечения на компьютерах клиентов;
· InstallShield Package for the Web — средство для распространения приложений через интернет, для доставки и цифровой подписи интернет-модулей.

InstallShield for Windows Installer

Файл инсталляции программы Алио Торговля.

Среди разработчиков особую популярность приобрел InstallShield for Windows Installer. У этого продукта понятный интерфейс, подсказки на каждом шагу, да и занимает он на жестком диске всего 66 Mб.

Мастера в InstallShield for Windows Installer удобны и продвинуты; кроме того, предусмотрена возможность изменения настроек дистрибутива в следующих секциях раздела Workspace:

· Project (общие настройки проекта, пути, переменные проекта, строковые ресурсы инсталлятора);
· Setup Design (файлы, включенные в проект, пути реестра, ярлыки, регистрация COM-объектов и типов файлов, управление службами Windows NT);
· Sequences (последовательность инсталляции);
· Actions/Scripts (комментарии к действиям, добавление скриптов);
· User Interface (настройка интерфейса: диалогов и сообщений);
· Release — результат (дистрибутивы и log-файлы их создания; подстройка под физический носитель (сеть, компакт-диск), посредством которого будет распространяться приложение; языки интерфейса).

Мастер (wizard) создания дистрибутива (кстати, достаточно длинный: 11 шагов, в каждом из которых несколько настроек) справился с поставленной задачей. Дистрибутив InS занял 872 Mб (с компрессией, без модулей MSI).

Наиболее весомое (267 Mб в полной установке) и наиболее сложное средство создания дистрибутивов. InstallShield Professional 6.2 имеет собственный скриптовый язык, большое количество настроек и предназначен для создания дистрибутивов крупных корпоративных приложений.

При создании нового проекта основную работу (как и в случае с предыдущим продуктом) можно поручить мастеру — для обычного проекта или для проекта Visual Basic. Мастер задаст много вопросов, потом немного попыхтит и, в конце концов, покажет проект инсталляции, скомпилировав который, мы и получим дистрибутив.

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

· Scripts — здесь находится основной скрипт процесса инсталляции — файл setup.rul, который можно создать с помощью мастера, а после редактировать вручную, отлаживать и компилировать. Скриптовый язык InstallShield немного похож на VB, но вполне поддается пониманию;
· File Groups — на этой вкладке в проект добавляются файлы: исполняемые, библиотеки, файлы помощи и примеров;
· Components — здесь перечислены компоненты проекта. Они обязательно должны включать группы файлов из предыдущего раздела;
· Setup Types — тут описываются типы установки (компактная, обычная, пользовательская) и то, какие компоненты из предыдущего раздела включаются в каждый тип установки;
· Setup Files — здесь перечислены файлы, включенные в инсталляцию, настраиваются зависимости от операционной системы и языка. Тут же можно отредактировать или заменить заставку;
· Resources — ресурсные файлы инсталляции: таблица переменных проекта (для каждого языка своя), записи в реестр, включение в меню Пуск => Программы => Автозагрузка, добавление объектов различных сред исполнения;
· Media — на этой вкладке находится результат нашей работы: дистрибутив, файлы журнала и отчета. Широко варьируется способ распространения дистрибутива: на компакт-диске, дискетах 3,5″, через интернет и пр.

Размер дистрибутива InS занял 2 Mб.

Wise InstallMaster 8.1 — произведение компании Wise Solutions (http://www.wise.com) — обладает не меньшей функциональностью, чем предыдущий продукт. Однако его интерфейс более понятен простому человеку.

Процесс создания дистрибутива разбит на 6 этапов:

1. files and components — задается список файлов и компонент, составляющих наше приложение. В этом разделе нужно указать, откуда и какие файлы помещать в дистрибутив, куда их класть при инсталляции. Задаются также настройки для патчей, деинсталляции, шрифтов, сред исполнения (runtime) Visual Basic, Visual Foxpro, BDE, Crystall Reports, Windows и баз данных;
1. system additions — в этом разделе задаются настройки для иконок, ключей реестра, INI-файлов и регистрации типов файлов Windows. Здесь же добавляются службы Windows NT и устройства Windows 3.1х и 9х, необходимые для работы приложения. Кроме того, задаются изменения, которые необходимо добавить в файлы autoexec.bat и config.sys, а также информация о том, в каком каталоге создавать log-файл инсталляции нашего приложения;
1. user system checks — этот раздел отвечает за системные требования нашего приложения к компьютеру пользователя и ранее установленные версии нашего приложения;
1. wizard appearance — в этом разделе описывается, как будет выглядеть процесс инсталляции. Редактированию поддаются фон и диалоговые окна, можно добавить свою рекламу, которая будет показываться в процессе инсталляции;
1. advanced functionality — в раздел включены возможности защиты дистрибутива паролем, online-регистрации и поддержки Windows CE;
1. finish — здесь указывается, в каком виде будет создан дистрибутив (в одном файле или в нескольких), и создавать ли CAB-файл. В этом же разделе находятся настройки для распространения приложения через интернет, контроля версий и специальные настройки для установки и удаления в Windows 2000.

Скрипт создания дистрибутива в Wise можно редактировать.

Дистрибутив приложения InS, созданный в Wise, занял 600 Kб.

Следует заметить, что с сайта компании-изготовителя можно загрузить не только 30-дневную демонстрационную версию инсталлятора под Windows, но и надстройки для нескольких сред исполнения (runtime) и руководство пользователя. Дистрибутив Wise InstallMaster 8.1 занимает 9 Мб, а после установки на жесткий диск — 15,5 Мб.

Далее в нашем хит-параде — Inno Setup. Это небольшой (1,1 Мб — дистрибутив, 2 Мб — в установке), но очень шустрый (а главное, бесплатный) продукт. Разработчик — Jordan Russel (http://www.jrsoftware.org/isdl.php).

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

За 2 минуты (в нем действительно просто разобраться!) Inno Setup создал файл setup.exe — дистрибутив нашей программки размером 700 Кб. Но, к сожалению, он справился не со всеми пунктами поставленной задачи.

Quick Install Maker 2000

Программа компании MJK Software Writers, Inc (http://www.mjksw.com) сразу очаровывает приятным и нестандартным интерфейсом. Большие и с красивыми рисунками кнопки расположены удобно; ничего лишнего (кроме назойливых приглашений зарегистрироваться) нет. Четыре правые кнопки отвечают за следующие аспекты создания инсталляции:

· Main Screen — настройка внешнего вида инсталляции нашего приложения: фон или изображение на экране, надписи, а также начальные параметры установки;
· Install Files — включение в инсталляцию файлов, добавление ярлыков на рабочий стол и в меню Пуск * Программы;
· INIREG — добавление ключей реестра или INI-файла, строк в файлы autoexec.bat и config.sys;
· Disk Builder — создание дистрибутива, его архивирование и копирование на дискеты.

Демо-версия QIM2000, которую можно загрузить с сайта производителя, весит 2,2 Мб, а установка программы занимает 2,8 Мб.

Читайте также:
Программа для покраски машины

Дистрибутив InS занял 754 Kб, с поставленной задачей справился полностью. Правда, при установке несколько раз сообщил о том, что он не зарегистрирован и вообще является демо-версией.

Источник: drkb.ru

Тестирование инсталляторов. Теория

image

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

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого, зачастую, пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии, в случае неудачи. Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя — это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование инсталляторов можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

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

Под катом много текста о том, что следует помнить при тестировании.

imageОсобенности тестирования инсталляторов:

Инсталлятор — это «обычная» программа, основные функции которой — Установка (Инсталляция), Обновление и Удаление (Деинсталляция) программного обеспечения.
Всем известна народная мудрость: «Встречают по одежке, а провожают по уму». Инсталляционное приложение и есть та самая одежка, по которой создается первое впечатление о Вашем продукте. Именно поэтому тестирование установки — это одна из важнейших задач.

Являясь обычной программой, инсталлятор обладает рядом особенностей, среди которых стоит отметить следующие:
● Глубокое взаимодействие с операционной системой и зависимость от неё (файловая система, реестр, сервисы и библиотеки).
● Совместимость как родных, так и сторонних библиотек, компонентов или драйверов, с разными платформами.
● Удобство использования: интуитивно понятный интерфейс, навигация, сообщения и подсказки.
● Дизайн и стиль инсталляционного приложения.
● Совместимость пользовательских настроек и документов в разных версиях приложения.
● И многое другое.

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

В тоже время, как и на любую программу, на инсталлятор накладываются некоторые функциональные требования. Объединив их со списком особенностей, мы получим более полную картину, показывающую объем предстоящих работ по тестированию. Далее, исходя из списка требований, Вам надо будет ответить на вопросы: «Что тестировать?», и только затем — «Как тестировать?».

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

imageЧто тестировать в Инсталляционных программах?

Распишем подробнее, «Что?» необходимо проверить, для оценки правильности работы инсталлятора:
● Установка (Инсталляция).
● Корректность списка файлов в инсталляционном пакете:
при выборе различных типов установки, либо установочных параметров список файлов и пути к ним также могут отличаться.
отсутствие лишних файлов (проектные файлы, не включенные в инсталляционный пакет, не должны попасть на диск пользователя).
● Регистрация приложения в ОС.
● Регистрация расширений для работы с файлами:
для новых расширений.
для уже существующих расширений.
● Права доступа пользователя, который ставит приложение:
права на работу с системным реестром.
права на доступ к файлам и папкам, например %Windir%system32.
● Корректность работы мастера установки (Installation Wizard).
● Инсталляция нескольких приложений за одни заход.
● Установка одного и того же приложения в разные рабочие директории одной рабочей станции.
● Обновление.
● Правильность списка файлов, а так же отсутствие лишних файлов:
проверка списка файлов при разных параметрах установки.
отсутствие лишних файлов.
● Обратная совместимость создаваемых данных:
сохранность и корректная работа созданных до обновления данных.
возможность корректной работы старых версий приложения с данными, созданными в новых версиях.
● Обновление при запущенном приложении.
● Прерывание обновления.
● Удаление (Деинсталляция).
● Корректное удаление приложения:
удаление из системного реестра установленных в процессе инсталляции библиотек и служебных записей.
удаление физических файлов приложения.
удаление/восстановление предыдущих файловых ассоциаций.
сохранность файлов созданных за время работы с приложением.
удаление при запущенном приложении.
удаление с ограниченным доступом к папке приложения.
удаление пользователем без соответствующих прав.

imageКак тестировать Инсталляции?

Получение списка файлов должно проводиться До, а проверка самих файлов — После установки.
Самое правильное — это попытаться получить список файлов от сборщика инсталляционного пакета. Фраза: «Возьмите и составьте список после установки ПО, там все верно» — это провокация и на нее лучше не поддаваться.
Если программа содержит файлы подписанные сертификатом, например от MS, то не исключено, что могут попадаться временные файлы, которые уже не нужны для работы приложения (*.tmp и т.д.). Обратите внимание, что один и тот же инсталляционный пакет может устанавливать под разные ОС разные наборы файлов. Поэтому тестировать надо делать под каждую ОС отдельно.

Практически для любой ОС важна регистрация рабочих библиотек и служебных записей. Например, в ОС Windows вам необходимо будет проверить системный реестр на предмет корректной записи новых данных и регистрации новых/нового приложения.
Если при открытии документа, на работу с которым рассчитана ваша программа, вы получите в результате диалог выбора программы для открытия файлов данного типа или же он будет открыт другим приложением, то налицо будет ошибка регистрации расширения в ОС.

По-хорошему инсталляционная программа должна при старте проверять учетную запись пользователя и сразу корректно сообщать о каких-либо проблемах с правами. Но не исключен вариант, что на какие-нибудь служебные папки будут установлены дополнительные ограничения. Можно попытаться самим смоделировать ситуации когда какая-нибудь из папок закрыта для записи, например «Program Files», «Windows», «%Windir%system32», а также проверить как будет себя вести приложение при невозможности записать какие-нибудь из файлов по нужному пути. Не исключен вариант, что без некоторых файлов работоспособность всего приложения не будет нарушена. В этом случае достаточно указать о проблеме с копированием файла(ов) в лог, и НЕ выводить сообщение об ошибке.

Необходимо провести полное Тестирование мастера установки (Installation Wizard) приложения.
Достаточно часто встречаются ситуации, когда приложение помимо себя самого ставит еще какой-нибудь продукт. Это может быть, как отдельное стороннее приложение, так и демонстрация своего же продукта. В процессе установки обычно это будет не еще один набор шагов мастера установки, а просто небольшое сообщение, что ставится такой-то продукт.

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

imageОбновление

Проверка обратной совместимости включает следующие шаги:
● После установки обновления, все ранее созданные приложением объекты, такие как документы, формы, сохранения (если это игра) должны открываться и работать без ошибок. Такое поведение называется обратная совместимость (backward compatibility). Пользовательские настройки должны остаться прежними, конечно если обновления не затрагивали именно их изменение.
● Созданные в новой версии однотипные документы должны корректно открываться в старых версиях, конечно если целью обновления не стояло изменение формата и структуры файлов. Если же был внедрен новый формат, то в новой версии должна быть реализована возможность сохранения документа в старом формате.
● В случае, если обновляемое приложение запущено, пользователь должен получить предупреждение о том, что обновление невозможно, при работающем приложении.

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

Читайте также:
Линия программа видеонаблюдения инструкция

imageУдаление (Деинсталляция)

Хорошей практикой считается удаление созданного в процессе инсталляции (регистрационные записи в системном реестре, библиотеки в системных каталогах %Windir%system32, файлы и т.д.). Условно процесс тестирования деинсталляции можно разбить на несколько частей:
● Проверка, что из системного реестра удалены, установленные в процессе инсталляции, служебные записи и ссылки на библиотеки.
● Проверка физического удаления файлов приложения.
● Проверка того, что после удаления приложения, зарегистрированные во время установки файловые расширения удалены, а ранее существующие (зарегистрированные до инсталляции) — восстановлены.
● Проверка сохранности данных созданных за время работы с приложением. Вполне вероятно, что лежат они где-то в глубине каталога самой программы. Это могут быть служебные скрипты, сохранения от игр или прочие созданные пользователем данные, удаление которых нанесет урон пользователю. Только представьте, что при удалении MS Office, все Ваши документы будут удалены вместе с ним. Поэтому подобные данные нельзя удалять без подтверждения пользователя.
● В случае, если удаляемое приложение запущено, пользователь должен получить предупреждение о том, что удаление невозможно, пока приложение работает.

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

imageТестирование мастера установки (Installation Wizard)

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

Умные люди писали: «Визарды — это зло». С этим можно соглашаться или нет, но тестировать их все равно приходится. Предлагается следующий план тестирования инсталляционного визарда:
● Определить все пути от начала до конца, и затем расставить приоритеты для каждого из них. Это поможет нам избежать излишних затрат и усилий при прохождении низкоприоритеных путей.
● Забудьте про GUI. Постарайтесь описать тест-кейcы без привязки к интерфейсным элементам. К примеру, GUI контролы checkbox/radiobutton или меню из двух пунктов это просто выбор между true и false, важно то, на что он влияет в конечном счете.
● Если по результатам прохождения визарда получается какой либо проперти файл (файл, описывающий свойства в виде списка: свойство=значение), который потом передается дальше в процедуру экспорта, в этом случае можно разделить проверки на два этапа — первый, создавать (генерировать) такие проперти файлы и проверять, что экспорт работает правильно. Второй — проверять, что через GUI получаются правильные проперти файлы.
● Не забудьте заняться таким рутинным видом тестирования визардов, как ходить туда-обратно по страницам:
ничего не меняя, все ответы должны сохраняться; меняя что-либо на предыдущей странице, на следующей должно произойти адекватное изменение либо сброс ответов.
● Убедитесь, что визард адекватно реагирует на неправильные ответы и не дает ходить дальше.
● Кнопка Cancel (Close) должна работать всегда и на всех страницах визарда.
● Создайте для каждого из возможных путей мастера установки шаблонный результат (в идеале, сделайте их несколько — для разных входных данных). Затем, по возможности, автоматизированно или вручную сравнивайте полученный результат с шаблонным.
● Выделите те опции, которые не влияют ни на какие другие, и на которые другие не оказывают влияния. Работу этих опций можно будет тестировать изолированно от других.

imageКросс-платформенное тестирование инсталляторов

Отдельным пунктом хочется выделить кросс-платформенное тестирование инсталляторов, которое обязательно должно проводиться для всех трех функций — установка, обновление и удаление:
● Корректность работы инсталлятора с различными версиями ОС, Сервиспаков (ServicePack) и установленных обновлений.
● Проверка файлов, драйверов и библиотек при установке под разные ОС.
● Проверка прав на доступа к файлам, папкам и к системным записям для разных ОС.
● Проверка установленных на файлы приложения разрешений (Permissions).

Для упрощения процедуры тестирования рекомендуется создать таблицу, где колонками будут идти требуемые конфигурации, а строками — тестовые случаи (test cases) или тестируемые функции. В процессе тестирования на пересечении колонок и строк заполняйте результат, что сможет визуально показать прогресс тестирования и соответствие «кросс-платформенным» требованиям.

Если приложение должно работать в нескольких ОС, то инсталлятор должен проверять необходимый набор функций в процессе своей работы. Возможно, что где-то должен быть установлен какой-нибудь пакет обновлений или просто надо работать с другой библиотекой.
Случай из практики: «Приложение должно быть закрыто для установки на Windows Vista. Запускаем его, программа думает и выдает сообщение, что мол эта версия не будет работать под данной ОС. Все верно, нажимаем Ок. После этого компьютер думает пару секунд и сообщает следующее: „Приложение было некорректно завершено.

Давайте попробуем запустить его в режиме совместимости?“ Соглашаемся и запускаем. Автоматически стартует наше приложение еще раз, но на этот раз ставится „на ура“. Не знаем, что и как там делает Vista, но код защиты пришлось переделывать.»

Проверка списка устанавливаемых файлов проводится по аналогии, что же касается установки драйверов и библиотек, то тут следует отметить особую важность данной проверки. Не все драйвера и библиотеки одинаково хорошо работаю на разных платформах.
Случай из практики: «Для некоторых драйверов есть зависимость от файловой системы, на которой работает ОС. Точнее для некоторых типов ошибок. Был случай, когда на NTFS все прекрасно работало, а на FAT32 нет. Причина была в неверной записи при установке драйвера в реестр.»
Необходимо проверить, что инсталлятор имеет права на доступ к файлам, папкам и к системным записям. Особенно это важно при инсталляции под ОС семейства UNIX, с их жесткими ограничениями в доступе к ресурсам для разных категорий пользователей. При/после инсталляции на unix системах, у файлов должны быть соответствующие разрешения (Permissions). Т.е. если файл предназначен для запуска, то он должен быть запускаемым, если это конфигурационный файл, например, то должны быть разрешения на модификацию и т.д.

image

Идея моего друга dartos.

Источник: habr.com

Windows Installer — новое слово в технологиях инсталляции

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

Термин Краткое описание
Внешний пользовательский интерфейс Пользовательский интерфейс, не использующий встроенные возможности Windows Installer. Такой интерфейс использует, например, инсталлятор Microsoft Visual Studio.NET.
Встроенный пользовательский интерфейс Пользовательский интерфейс, основанный на встроенных возможностях Windows Installer. Инсталляторы с таким интерфейсом работают в режиме Мастера, то есть инсталляция выполняется пошагово. Такой интерфейс используют, например, инсталляторы Microsoft Office 2000 и XP.
Патч (заплата) Метод обновления файлов на уровне изменения байтов, а не замены файла целиком. Применяется при мелких обновлениях.
Инсталляционная база данных Реляционная база данных, содержащая всю необходимую логику и данные для установки приложения
Инсталляция по требованию Служба Installer, позволяющая устанавливать приложение или его опции только, когда их запрашивает пользователь или другое приложение
Код пакета Глобально уникальный идентификатор (GUID) пакета (модуля инсталляции)
Компонент Наименьшая часть инсталляции, обрабатываемая инсталлятором, а также часть функциональности приложения с точки зрения программиста
Обновление Установка самой последней версии приложения
Операция Инкапсуляция некоторой типичной функции, выполняемой во время инсталляции или обновления приложения.
Опция Часть функциональности приложения, видимая со стороны пользователя
Оценка стоимости Метод, используемый Windows Installer для оценки дискового пространства, необходимого приложению
Откат Автоматическое восстановление оригинальной конфигурации компьютера при сбоях в установке
Пакет (модуль) инсталляции Состоит из .msi-файла и внешних, связаных с ним файлов. Содержит всю логику, необходимую для установки и удаления приложения.
Подключаемый модуль База данных, содержащая наборы компонентов. Позволяет создавать пакеты инсталляции из готовых наборов компонентов. Отдельно устанавливаться не может.
Пользовательская операция Операция, определенная разработчиком пакета инсталляции.
Свойство Глобальная переменная, используемая Windows Installer при интсалляции приложения
Стандартная операция Встроенная в Windows Installer предопределенная операция, например, CreateShortcuts или InstallFiles.
Таблицы последовательности установки Таблицы в инсталляционной базе данных, задающие правила установки
Трансформация Шаблон изменений, используемый для добавления или замены элементов исходной базы данных. Применяется, например, для замены языка приложения.
Уровень базового пользовательского интерфейса Уровень, при котором Windows Installer обеспечивает простой пользовательский интерфейс с немодальными диалогами. На этом уровне недоступно использование пользовательских диалогов.
Уровень инсталляции Уровень, задаваемый для каждой инсталляции. Приложение устанавливается только если его уровень меньше или равен уровню инсталляции. Таким образом, можно управлять инсталляцией наборов приложений.
Уровень полного пользовательского интерфейса Уровень, при котором можно задействовать все встроенные возможности пользовательского интерфейса Windows Installer
Уровень сокращенного пользовательского интерфейса Уровень, при котором Windows Installer обеспечивает интерфейс с немодальными пользовательскими диалогами. Также могут использоваться встроенные модальные диалоги для сообщений об ошибках.
SQL (Structured Query Language) Язык запросов, используемый для работы с реляционными базами данных. Windows Installer поддерживает ограниченное подмножество языка.
Читайте также:
Фьюжн программа для торговли инструкция

Итак, продолжим. Что же такое технология Windows Installer, о которой я написал уже десяток абзацев, но еще ничего так толком и не сказал? Чем она так замечательна? Что в ней нового по сравнению с уже существующими решениями?

Что такое Windows Installer?

Windows Installer — это сервис установки и конфигурирования программных продуктов. Он поставляется как неотъемлемая часть операционных систем Windows 2000 и Windows Me, а также может устанавливаться в ОС Windows 95, Windows 98 и Windows NT 4.0 вместе с пакетами обновления этих операционных систем или в качестве отдельного дистрибутива.

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

Основная цель этой технологии: уменьшение так называемой совокупной стоимости владения (TCO — Total Cost of Ownership) для пользователей программных продуктов за счет эффективных средств развертывания и конфигурирования ПО. Надо отметить, что Windows Installer — это только часть (хотя и очень важная) усилий Microsoft по снижению стоимости развертывания, использования и сопровождения ПО для персональных компьютеров.

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

Выгода от использования Windows Installer для пользователей

Выгода от использования модулей инсталляции для Windows Installer заключается в том, что они облегчают процесс установки и обновления программных продуктов пользователям. Эти модули могут работать на любой 32-хбитной платформе Windows, начиная от Windows 95 и заканчивая Windows XP. Пользователи этих операционных систем получают много преимуществ от использования технологии Windows Installer, а именно:

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

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

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

• Мощные возможности отката. Windows Installer позволяет отменять любые изменения в конфигурации как устанавливаемого продукта, так и операционной системы. Это делает установку программ, поддерживающих технологию Windows Installer, намного более безопасным и предсказуемым занятием, чем каких-либо других.

Если при установке программы пользователь сталкивается с фатальной ошибкой, которая прерывает процесс инсталляции, у него остается возможность вернуться к предыдущему устойчивому состоянию. Причем это состояние будет в точности таким, каким было до попытки установки нового программного продукта. Такое поведение программ очень сильно отличается от того, к которому мы привыкли за много лет. Сбой или ошибки в программе инсталляции любого продукта (особенно заменяющего системные динамические библиотеки) могли нарушить работоспособность всей системы, причем это было справедливо не только для практически незащищенных операционных систем типа Windows 9x, но и для Windows NT. Я сам не раз сталкивался с подобными проблемами, особенно при отладке инсталлятора для довольно большого продукта, созданного с использованием пакета InstallShield Professional.

Выгода для пользователей Windows 2000 и более новых систем

Пользователи этих систем получают еще больше преимуществ, а именно:

• Публикация приложений

• Установка приложений на «закрытых» машинах

Публикация приложений

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

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

Установка приложений на «закрытых» машинах

Администраторы систем Windows 2000 могут разрешать пакетам инсталляции запускаться с привилегиями администратора на пользовательских машинах. Это позволяет устанавливать программное обеспечение на «закрытых» Windows 2000 компьютерах, то есть на таких компьютерах, где обычные пользователи не имеют привилегий делать то, что позволяется делать программе инсталляции.

Выгода от использования Windows Installer для разработчиков

То, что пользователям выгодно использовать данную технологию, сомнений не возникает. Но мы-то с вами не рядовые пользователи, мы — разработчики программного обеспечения (на мой взгляд, это должно звучать гордо). Что нам дает Windows Installer, кроме еще одной головной боли от необходимости изучать нечто новое? А вот что (и это немало):

• Легкость использования. Гораздо легче создать пакет инсталляции, основанный на том, что надо инсталлировать, чем на инструкциях о том, как это делать.

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

Я думаю, тот, кто работал с InstallShield Professional (пакет для создания инсталляций, управляемых скриптом) и InstallShield Developer (пакет для создания инсталляций на основе Windows Installer),

Раньше InstallShield Developer назывался InstallShield for Windows Installer поймет, насколько более гибко последний позволяет управлять созданием разных инсталляций на основе единого набора данных.

ПРИМЕЧАНИЕ Раньше InstallShield Developer назывался InstallShield for Windows Installer

Что касается первого утверждения, непонятного на первый взгляд, то в нем все просто. Посмотрите на следующий заголовок — он все объясняет.

Инсталляция, управляемая данными

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

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

ПРИМЕЧАНИЕ Все вышесказанное взято из документации Microsoft. Многие разработчики (в том числе и я) не во всем согласны с этими утверждениями. Но нельзя отрицать и того, что технология Windows Installer все-таки здорово облегчает жизнь системным администраторам и разработчикам.

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

Источник: www.uhlib.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru