Использование квалифицированных компонентов
Квалифицированные компоненты являются методом косвенного обращения и могут использоваться для группировки компонентов с параллельной функциональностью в категории.
Чтобы вернуть полный путь и установить квалифицированный компонент, вызовите MsiProvideQualifiedComponent или MsiProvideQualifiedComponentEx.
Чтобы перечислить все квалификаторы компонентов и описательные строки, вызовите MsiEnumComponentQualifiers.
Группирование компонентов в категорию квалифицированных компонентов
- В таблице Компонент должна быть запись для каждого компонента, включенного в новую категорию квалифицированных компонентов. Создай поля в таблице Компонент так же, как и для обычных компонентов. Обратите внимание, что каждый квалифицированный компонент должен иметь уникальный идентификатор GUID компонента, введенный в столбце ComponentId таблицы Component.
- Создайте текстовую строку квалификатора для каждого квалифицированного компонента. Квалификатор должен быть уникальной текстовой строкой, которую можно легко создать при поиске квалифицированного компонента. Например, если компоненты в категории квалифицируются по языку, числовый идентификатор языкового стандарта (LCID) является разумной строкой квалификатора.
- Добавьте запись в таблицу PublishComponent для каждого квалифицированного компонента. Введите полные идентификаторы компонентов из столбца Компонент таблицы Компонент в столбец Component_ таблицы PublishComponent. Введите строки квалификатора для каждого квалифицированного компонента в столбец Квалификатор. Введите локализованную строку, которая будет отображаться для пользователя и описывать квалифицированный компонент в необязательный столбец AppData. Поясняющая строка должна быть помещена в поле AppData, например "Французский словарь", а не просто числовой код кода кода. Введите имя компонента, использующего этот компонент, в столбец Feature_. Идентификатор компонента в этом поле также должен быть указан в столбце Компонент таблицы Компонентов.
- Создайте GUID категории для этой категории квалифицированных компонентов. Это должен быть допустимый ИДЕНТИФИКАТОР GUID. Если вы используете служебную программу, например GUIDGEN, для создания GUID убедитесь, что он содержит только прописные буквы. Для каждого квалифицированного компонента в этой категории введите GUID категории в поле ComponentId таблицы PublishComponent.
В следующем примере показано, как категория "Шаблоны ФАКСа" для квалифицированных компонентов создается в таблицах Component, Feature и PublishComponent.
ComponentId | Квалификатор | AppData | Функция_ | Компонент_ |
---|---|---|---|---|
{GUID категории шаблона FAX} | 1033 | Шаблон на английском языке (США) | FAXTemplate | FAXTemplateENU |
1041 | Японский шаблон | FAXTemplate | FAXTemplateJPN | |
1054 | Тайский шаблон | FAXTemplate | FAXTemplateTHA | |
1031 | Немецкий шаблон | FAXTemplate | FAXTemplateDEU |
Таблица компонентов (частичная таблица)
Компонент | ComponentId |
---|---|
FAXTemplateENU | {GUID компонента FAX Template (us english) (GUID) компонента |
FAXTemplateJPN | {GUID компонента FAX Template (японский)} |
FAXTemplateTHA | {GUID компонента FAX Template (Тайский) } |
FAXTemplateDEU | {GUID компонента FAX Template (немецкий)} |
Таблица признаков (частичная таблица)
Компонент |
---|
FAXTemplate |
FAXTemplate |
FAXTemplate |
FAXTemplate |