InstallShield Developer количество таблиц достигает 113! При этом никто не запрещает нам, как разработчикам, определять и добавлять свои таблицы, дополняя тем самым модель данных Windows Installer.
ПРИМЕЧАНИЕ Вышесказанное справедливо для Windows Installer версии 2.0, который позволяет распространять и устанавливать приложения для новой перспективной платформы Microsoft -.NET Framework.
Я не буду приводить полный список этих таблиц, так как он займет слишком много места. Вместо этого выделим основные группы таблиц и рассмотрим их подробнее.
В базе данных пакета инсталляции можно выделить семь основных групп:
• базовые таблицы;
• файловые таблицы;
• таблицы записей в реестре Windows;
• системные таблицы;
• таблицы поиска;
• таблицы информации о программе;
• таблицы процесса инсталляции;
Базовые таблицы
Эта группа состоит из таблиц, описывающих основные опции и компоненты приложения и пакета его инсталляции. Эта группа должна заполняться в первую очередь, так как от ее содержимого зависит организация всей остальной части базы данных. Структура этой группы показана на рисунке 1.
Рисунок 1. Структура группы Базовые таблицы
ПРИМЕЧАНИЕ На этой и на последующих диаграммах черный круг, соединенный с белым ромбом обозначает отношение один-ко-многим между первичным ключом в первой таблице и внешним ключом во второй.
Таким образом, мы видим, что эта группа состоит из 11 связанных таблиц. Ниже приведены их краткие описания:
Имя таблицы | Краткое описание |
---|---|
Feature | Содержит список всех функций программного продукта |
Condition | Содержит условия определяющие порядок установки каждой функции, описанной в таблице Feature 1 |
FeatureComponents | Связывает функции с компонентами, иными словами - эта таблица определяет, какой функции принадлежит компонент 2 |
Component | Содержит список всех компонентов приложения |
Directory | Содержит список всех каталогов, необходимых для инсталляции |
PublishComponent | Содержит список функций и компонентов, публикуемых для использования в других приложениях |
Assembly | Задает установки для сборок.NET Framework CLR и Win32 |
AssemblyName | Задает схему для именования сборок.NET Framework CLR и Win32 |
Complus | Содержит информацию, необходимую для установки приложений COM+ |
IsolatedComponent | Связывает компонент, заданный в столбце Component_Application (обычно .exe) с компонентом, заданным в столбце Component_Shared (обычно .dll) |
Upgrade | Содержит информацию для значительных обновлений программного продукта 3 |
ПРИМЕЧАНИЕ
1. Если в таблице Condition нет условия для функции из таблицы Feature - это значит, что функция будет установлена в любом случае.
2. Один компонент может быть связан с несколькими функциями. В данном случае под термином значительное обновление понимается обновление, приводящее к изменению свойства ProductCode.
3. Я не буду останавливаться на обновлениях, так как эта тема заслуживает отдельной статьи.
Файловые таблицы
Эта группа таблиц содержит информацию обо всех файлах, составляющих программный продукт.