Поделиться через


Использование квалифицированных компонентов

Квалифицированные компоненты являются методом косвенного обращения и могут использоваться для группировки компонентов с параллельной функциональностью в категории.

Чтобы вернуть полный путь и установить квалифицированный компонент, вызовите MsiProvideQualifiedComponent или MsiProvideQualifiedComponentEx.

Чтобы перечислить все квалификаторы компонентов и описательные строки, вызовите MsiEnumComponentQualifiers.

Группирование компонентов в категорию квалифицированных компонентов

  1. В таблице Компонент должна быть запись для каждого компонента, включенного в новую категорию квалифицированных компонентов. Создай поля в таблице Компонент так же, как и для обычных компонентов. Обратите внимание, что каждый квалифицированный компонент должен иметь уникальный идентификатор GUID компонента, введенный в столбце ComponentId таблицы Component.
  2. Создайте текстовую строку квалификатора для каждого квалифицированного компонента. Квалификатор должен быть уникальной текстовой строкой, которую можно легко создать при поиске квалифицированного компонента. Например, если компоненты в категории квалифицируются по языку, числовый идентификатор языкового стандарта (LCID) является разумной строкой квалификатора.
  3. Добавьте запись в таблицу PublishComponent для каждого квалифицированного компонента. Введите полные идентификаторы компонентов из столбца Компонент таблицы Компонент в столбец Component_ таблицы PublishComponent. Введите строки квалификатора для каждого квалифицированного компонента в столбец Квалификатор. Введите локализованную строку, которая будет отображаться для пользователя и описывать квалифицированный компонент в необязательный столбец AppData. Поясняющая строка должна быть помещена в поле AppData, например "Французский словарь", а не просто числовой код кода кода. Введите имя компонента, использующего этот компонент, в столбец Feature_. Идентификатор компонента в этом поле также должен быть указан в столбце Компонент таблицы Компонентов.
  4. Создайте GUID категории для этой категории квалифицированных компонентов. Это должен быть допустимый ИДЕНТИФИКАТОР GUID. Если вы используете служебную программу, например GUIDGEN, для создания GUID убедитесь, что он содержит только прописные буквы. Для каждого квалифицированного компонента в этой категории введите GUID категории в поле ComponentId таблицы PublishComponent.

В следующем примере показано, как категория "Шаблоны ФАКСа" для квалифицированных компонентов создается в таблицах Component, Feature и PublishComponent.

Таблица 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