Технология Windows Installer. Часть I. Обзор возможностей - страница 7
-файлов при инсталляции приложения | |
Environment | Эта таблица используется для задания переменных окружения >2 |
Icon | Эта таблица хранит файлы иконок. Каждая иконка этой таблицы во время инсталляции копируется в отдельный файл на диске >3 |
FileSFPCatalog | Эта таблица используется системой Windows File Protection в ОС Windows Me |
SFPCatalog | Эта таблица также используется системой Windows File Protection в ОС Windows Me |
MsiFileHash | Эта таблица хранит 128-разрядное хэш-значение для исходных файлов в пакете инсталляции >4 |
ПРИМЕЧАНИЕ
1. Для получения более подробной информации о привязках смотрите описание функции Windows API BindImageEx
2. В операционных системах Windows95/98 в этой таблице также хранится список изменений в файле autoexec.bat
3. Таблица Icon используется при публикации программных продуктов
4. Таблица MsiFileHash может использоваться только для файлов, не содержащих информации о версиях. Windows Installer может использовать информацию из этой таблицы, чтобы не выполнять лишнее копирование файлов, уже содержащихся на пользовательском компьютере и совпадающих с файлами из пакета инсталляции.
Таблицы записей в реестре Windows
Эта группа содержит таблицы, описывающие различные виды информации в реестре Windows. Структура группы показана на рисунке 3.
Рисунок 3. Структура группы таблиц Записи в реестре Windows.
Внимательный читатель, конечно же, заметил, что на рисунке присутствуют таблицы из других групп, такие, как Component, Feature и File. Эти таблицы включены сюда для того, чтобы более ясно показать логику работы этой группы. Кроме того, здесь присутствуют таблицы, уже упоминавшиеся в других группах, но здесь играющие немного другую роль (это таблицы SelfReg и Environment).
Таким образом, эта группа включает 11 таблиц, краткое описание которых дано ниже:
Имя таблицы | Краткое описание |
---|---|
Extension | Эта таблица содержит список расширений файлов, используемых устанавливаемой программой, вместе с привязанными к этим расширениям функциями и компонентами |
Verb | Эта таблица связывает информацию о командах, связанных с расширениями файлов из предыдущей таблицы. Наличие этих таблиц в связке с таблицей Feature позволяет реализовать возможность публикации приложения |
TypeLib | Эта таблица содержит записи, необходимые для регистрации библиотек типов >1 |
MIME | Эта таблица связывает типы MIME c CLSID или расширением файла. Это позволяет связать таблицы MIME и Feature, и обеспечить еще один путь для публикации приложения |
SelfReg | Смотрите описание в группе Файловые операции>2 |
Class | Эта таблица содержит информацию, необходимую для работы COM-серверов |
ProgId | Эта таблица содержит информацию о ProgID для COM-серверов |
AppId | Эта таблица используется для конфигурирования DCOM-серверов |
Environment | Смотрите описание в группе Файловые таблицы>3 |
Registry | Эта таблица содержит всю прочую информацию, не вошедшую в другие таблицы. Это может быть пользовательская информация, данные, установки по умолчанию и т.д. |
RemoveRegistry | Эта таблица содержит информацию о записях в реестре, которые нужно удалить при инсталляции приложения |
ПРИМЕЧАНИЕ
1. При публикации приложения никаких записей о библиотеках типов не делается. Запись производится только в момент установки компонента, связанного с библиотекой.
2. Использование саморегистрации в Windows Installer НЕ РЕКОМЕНДУЕТСЯ и включено только для обеспечения обратной совместимости с предыдущими технологиями установки программ. Вместо этого рекомендуется заполнить соответствующие таблицы нужной информацией, аналогичной той, что прописывает нужный модуль при вызове его функции DllRegisterServer.
3. Эта таблица включена в данную группу, так как в операционных системах Windows NT / 2000 / XP данные из нее пишутся в реестр.
СОВЕТ При заполнении этой группы нужно попытаться сделать таблицу Registry как можно компактней, поместив как можно больше информации в другие, более специфичные таблицы. Это делается, потому что Installer не может выделить различные типы реестровых записей в таблице Registry и, следовательно, не может использовать внутреннюю логику для задействования всех своих возможностей, например - публикации или установки по требованию. Кроме того, такой способ организации данных поможет уменьшить риск записи лишней информации о COM-серверах.