使用限定组件
限定组件是一种间接方法,可用于将具有并行功能的组件分组到类别中。
若要返回完整路径并安装限定的组件,请调用 MsiProvideQualifiedComponent 或 MsiProvideQualifiedComponentEx。
若要枚举所有限定的组件限定符和描述性字符串,请调用 MsiEnumComponentQualifiers。
将组件组合到限定组件类别中
- 对于新类别的限定组件中包含的每个组件,Component 表中必须有一条记录。 在 Component 表中创作字段与普通组件相同。 请注意,每个合格的组件都必须有一个唯一的组件 ID,即在组件表的 ComponentID 列中输入的 GUID。
- 为每个限定组件生成限定符文本字符串。 限定符必须是在搜索限定组件时可以轻松生成的唯一文本字符串。 例如,如果类别中的组件由语言限定,则合理的限定符字符串是数字区域设置标识符 (LCID)。
- 在 PublishComponent 表中针对每个限定组件添加一条记录。 在 PublishComponent 表的 Component_ 列中输入 Component 表中的 Component 列中的限定组件标识符。 在 Qualifier 列中输入每个限定组件的限定符字符串。 在可选的 AppData 列中输入要向用户显示的本地化字符串(用于描述限定组件)。 应在 AppData 字段中输入解释性字符串,例如“法语词典”,而不仅仅是数字 LCID。 在 Feature_ 列中输入使用此组件的功能的名称。 此字段中的功能标识符也必须在 Feature 表的 Feature 列中列出。
- 为此类别的合格组件生成类别 GUID。 这必须是有效的 GUID。 如果使用 GUIDGEN 等实用工具生成 GUID,请确保 GUID 仅包含大写字母。 对于此类别中的每个限定组件,请在 PublishComponent 表的 ComponentId 字段中输入类别 GUID。
以下示例演示如何将限定组件的“FAX 模板”类别编写到 Component、Feature 和 PublishComponent 表中。
ComponentId | 限定符 | AppData | Feature_ | Component_ |
---|---|---|---|---|
{FAX 模板类别 GUID} | 2052 | 美国英语模板 | FAXTemplate | FAXTemplateENU |
1041 | 日语模板 | FAXTemplate | FAXTemplateJPN | |
1054 | 泰语模板 | FAXTemplate | FAXTemplateTHA | |
1031 | 德语模板 | FAXTemplate | FAXTemplateDEU |
Component 表(非完整表)
组件 | ComponentId |
---|---|
FAXTemplateENU | {FAX 模板(美国英语)组件 GUID} |
FAXTemplateJPN | {FAX 模板(日语)组件 GUID} |
FAXTemplateTHA | {FAX 模板(泰语)组件 GUID} |
FAXTemplateDEU | {FAX 模板(德语)组件 GUID} |
Feature 表(非完整表)
功能 |
---|
FAXTemplate |
FAXTemplate |
FAXTemplate |
FAXTemplate |