Выбрать главу

Следующая группа таблиц расширяет возможности инсталлятора по манипулированию файлами и каталогами в процессе инсталляции.

Имя таблицы Краткое описание
RemoveFile Эта таблица содержит список файлов, которые необходимо удалить при инсталляции
RemoveIniFile Эта таблица содержит информацию, которую нужно удалить из .ini-файлов при инсталляции приложения
RemoveRegistry Эта таблица содержит информацию, которую нужно удалить из реестра при инсталляции связанного с ней компонента
CreateFolder Содержит список каталогов, которые необходимо создать при инсталляции приложения 1
MoveFile Эта таблица содержит список файлов, которые нужно перенести или скопировать во время инсталляции из исходного каталога в заданный каталог

ПРИМЕЧАНИЕ

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