Технология Windows Installer. Часть I. Обзор возможностей
Шрифт:
Группа таблиц поиска состоит из 7 таблиц, описание которых дано ниже:
Имя таблицы | Краткое описание |
---|---|
Signature | Содержит информацию, уникальным образом описывающую некоторый файл 1 |
RegLocator | Эта таблица содержит информацию, необходимую для поиска файлов или каталогов по записям в реестре |
IniLocator | Эта таблица используется для поиска .ini– файлов. Эти файлы должны быть расположены в корневом каталоге Windows |
CompLocator | Эта таблица используется для поиска файлов или каталогов с использованием конфигурационных данных Windows Installer |
DrLocator | Эта
|
AppSearch | Эта таблица содержит список свойств, которые должны быть установлены, если нужный файл или каталог с заданной сигнатурой найден |
CCPSearch | Эта таблица содержит список сигнатур файлов, из которых хотя бы один должен быть установлен на пользовательском компьютере. Таблица используется при обновлении программ |
ПРИМЕЧАНИЕ
1. Формально по документации Microsoft таблица Signature не относится к группе таблиц поиска. Но так как она нигде, кроме поиска, не используется, я позволил себе внести ее в эту группу.
Таблицы информации о программе
Таблицы этой группы содержат важную информацию о пакете инсталляции, используемую на протяжении всего процесса инсталляции.
Состоит эта группа из пяти таблиц:
Имя таблицы | Краткое описание |
---|---|
Property | В этой таблице хранятся все свойства 1 пакета инсталляции |
Binary | В этой таблице хранятся двоичные данные для иконок, растров и т.п. Также здесь хранятся данные для пользовательских операций |
Error | Эта таблица используется для поиска шаблонов форматирования при обработке ошибок. Installer имеет свой собственный механизм обработки ошибок |
Shortcut | Здесь хранится вся информация, необходимая для создания файловых ярлыков |
ReserveCost | Эта таблица содержит информацию о необходимом дисковом пространстве для каждого компонента приложения |
ПРИМЕЧАНИЕ
1. Свойство - это глобальная переменная, которая используется Microsoft Windows Installer во время инсталляции.
Таблицы процесса инсталляции
Таблицы этой группы управляют выполнением стандартных и пользовательских операций.
ПРИМЕЧАНИЕ Тема операций в Windows Installer обширна и ей будет посвящена одна из следующих статей.
Некоторые из таблиц этой группы управляют последовательностью выполнения операций на самом высоком уровне. Каждая из следующих таблиц управляет своей частью процесса.
Имя таблицы | Краткое описание |
---|---|
InstallUISequence | Эта таблица содержит операции, выполняемые при активизации высокоуровневой операции INSTALL и уровне пользовательского интерфейса - полный или сокращенный. Installer пропускает операции из этой таблицы, если уровень пользовательского интерфейса установлен в базовый или отключен1 |
InstallExecuteSequence | Эта таблица содержит операции, выполняемые при активизации высокоуровневой операции INSTALL1, 2 |
AdminUISequence | Эта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADMIN и уровне пользовательского интерфейса - полный или сокращенный. Installer пропускает операции из этой таблицы, если уровень пользовательского интерфейса установлен в базовый или отключен3 |
AdminExecuteSequence | Эта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADMIN2, 3 |
AdvtUISequence | Installer не использует эту таблицу. Она должна быть удалена из базы данных или быть пустой |
AdvtExecuteSequence | Эта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADVERTISE4 |
ПРИМЕЧАНИЕ
1. Все операции в последовательности инсталляции, вплоть до InstallValidate и диалогов выхода, помещаются в таблицу InstallUISequence. Все операции от InstallValidate и до конца инсталляции - в таблицу InstallExecuteSequence. Так как последняя таблица может использоваться независимо от первой (например, если пользовательский интерфейс отключен), она включает все операции инициализации, такие как LaunchConditions, CostInitialize, CostFinalize и ExecuteAction.
2. Все пользовательские операции, выполняемые в этой последовательности, при необходимости использования пользовательского интерфейса должны пользоваться функцией API MsiProcessMessage, вместо диалогов из таблицы Dialog.
3. Все операции в последовательности инсталляции, вплоть до InstallValidate и диалогов выхода, помещаются в таблицу AdminUISequence. Все операции от InstallValidate и до конца инсталляции - в таблицу AdminExecuteSequence. Так как последняя таблица может использоваться независимо от первой (например, если пользовательский интерфейс отключен), она включает все операции инициализации, такие как LaunchConditions, CostInitialize, CostFinalize и ExecuteAction.
4. Таблица AdvtExecuteSequence может содержать только ограниченный набор стандартных операций. Пользовательские операции не должны содержаться в этой таблице.
К другой группе относятся таблицы, позволяющие расширять функциональность пакета инсталляции. Достаточно часто, особенно при установке сложных программных продуктов, встроенной функциональности Windows Installer, основанной на стандартных операциях, не хватает. Здесь и приходит на помощь таблица Custom Action, позволяющая создавать и хранить в инсталляционной базе данных информацию для выполнения пользовательских операций.
Эта таблица позволяет легко и просто интегрировать пользовательский код и данные в процесс инсталляции приложения. Исполняемый код может браться прямо из базы данных, только что установленного файла или из уже существующего на компьютере исполняемого файла.
Следующая группа таблиц расширяет возможности инсталлятора по манипулированию файлами и каталогами в процессе инсталляции.
Имя таблицы | Краткое описание |
---|---|
RemoveFile | Эта таблица содержит список файлов, которые необходимо удалить при инсталляции |
RemoveIniFile | Эта таблица содержит информацию, которую нужно удалить из .ini– файлов при инсталляции приложения |
RemoveRegistry | Эта таблица содержит информацию, которую нужно удалить из реестра при инсталляции связанного с ней компонента |
CreateFolder | Содержит список каталогов, которые необходимо создать при инсталляции приложения 1 |
MoveFile | Эта таблица содержит список файлов, которые нужно перенести или скопировать во время инсталляции из исходного каталога в заданный каталог |
ПРИМЕЧАНИЕ
1. Хотя Installer и создает при инсталляции каталоги по мере необходимости, они удаляются, если не содержат файлов. Каталоги, перечисленные в таблице CreateFolder, не удаляются до тех пор, пока не будет удален связанный с ними компонент.
И, наконец, последняя в списке, но далеко не последняя по значимости таблица, управляющая выполнением инсталляции: LaunchCondition. Эта таблица содержит список условий, при выполнении которых может начаться процесс инсталляции. Следует заметить, что эта таблица управляет процессом в целом и для успешного запуска процесса инсталляции необходимо выполнение ВСЕХ содержащихся в ней условий.
Последнее слово о таблицах
Список таблиц, используемых Windows Installer, весьма велик. И вполне естественно, что в рамках статьи невозможно рассмотреть все из них. Многие из таблиц, не упоминавшихся здесь, будут рассмотрены в следующих статьях, при рассмотрении более узких тем.
Windows Installer API
Таблицы - это конечно, хорошо. Но как добраться до содержимого этих таблиц? И как изменять эти таблицы? То есть, говоря иными словами, как можно работать с базой данных инсталляционного пакета?