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