Алифанов Андрей - Технология Windows Installer. Часть I. Обзор возможностей
ПРИМЕЧАНИЕ
1. Хотя Installer и создает при инсталляции каталоги по мере необходимости, они удаляются, если не содержат файлов. Каталоги, перечисленные в таблице CreateFolder, не удаляются до тех пор, пока не будет удален связанный с ними компонент.
И, наконец, последняя в списке, но далеко не последняя по значимости таблица, управляющая выполнением инсталляции: LaunchCondition. Эта таблица содержит список условий, при выполнении которых может начаться процесс инсталляции. Следует заметить, что эта таблица управляет процессом в целом и для успешного запуска процесса инсталляции необходимо выполнение ВСЕХ содержащихся в ней условий.
Последнее слово о таблицах
Список таблиц, используемых Windows Installer, весьма велик. И вполне естественно, что в рамках статьи невозможно рассмотреть все из них. Многие из таблиц, не упоминавшихся здесь, будут рассмотрены в следующих статьях, при рассмотрении более узких тем.
Windows Installer API
Таблицы - это конечно, хорошо. Но как добраться до содержимого этих таблиц? И как изменять эти таблицы? То есть, говоря иными словами, как можно работать с базой данных инсталляционного пакета?
Для этого существует Windows Installer API. Этот API весьма обширен и включает в себя несколько десятков функций, различных констант и агрегатных типов данных. Все функции Windows Installer API поддерживают как ANSI, так и Unicode. Это позволяет использовать их как в операционных системах на основе Windows NT, для которых кодировка Unicode является родной, так и в системах Windows 9x, ограниченно поддерживающих Unicode.
Все функции Windows Installer API легко найти по префиксу - Msi.
Функции API можно условно разделить на две большие группы:
• Функции общего назначения.
• Функции доступа к инсталляционной базе данных.
Функции общего назначения
Эта большая группа функций делится на следующие группы:
• Функции пользовательского интерфейса и журналирования.
• Функции управления дескрипторами.
• Функции конфигурирования и инсталляции.
• Компоненто-ориентированные функции.
• Функции приложения.
• Функции статуса системы.
• Функции запросов.
• Функции исправлений.
Функции доступа к инсталляционной базе данных
Функции доступа к базе данных используются в пользовательских операциях, выполняемых во время инсталляции программ, и в инструментальных утилитах (например, в тех же ORCA и MsiSpy из Platform SDK). Некоторые из этих функций используют подмножество языка SQL для запросов к базе данных.
Функции доступа к базе данных можно разделить на следующие группы:
• Общие функции - эта группа функций используется для открытия, закрытия базы данных, работы с представлениями базы данных.
• Функции управления - эта группа используется в основном для работы с трансформациями, а также для объединения баз данных, и их импорта/экспорта в текстовые файлы.
• Функции обработки записей - это различные функции для манипулирования записями базы данных. С помощью этих функций можно извлекать данные из базы и помещать их туда. В Windows Installer поддерживаются следующие типы записей: String - строка, заканчивающаяся нулем, Integer - 32-битное целое число и Stream - поток байтов произвольной длины.
• Функции для работы c суммарной информацией - эта группа функций позволяет извлекать из базы и записывать в базу свойства суммарной информации.
• Функции доступа к состоянию инсталлятора - эти функции позволяют получать и задавать различные свойства инсталлятора.
• Функции выполнения операций - эта группа функций используется для выполнения пользовательских и стандартных операций, вычисления условий и обработки сообщений.
• Функции поиска - эти функции позволяют получать и записывать информацию в таблице Directory.
• Функции выбора - эта группа функций используется для работы с функциями приложения и компонентами.Также в нее входят функции для установки уровня инсталляции и оценки места на диске, необходимого как для установки отдельных компонентов приложения, так и для всего продукта в целом
• Функции пользовательского интерфейса - эти функции используются в инструментальных средствах для предварительного просмотра диалоговых окон и различных
Заключение
На этом я хочу закончить первую часть цикла. Надеюсь, что вы получили достаточно ясное общее представление о технологии Windows Installer и преимуществах ее применения для инсталляции программных продуктов. В следующей статье я хочу рассказать о том, как же собственно выполняется инсталляция приложений, какие процессы при этом происходят, и какие данные из вышерассмотренных таблиц используются.
Источники информации
Документация к Platform SDK
Microsoft Developer Network
InstallShield Corporation
http://www.installsite.org