Share via


使用限定元件

限定元件是間接取值的方法,可用來將具有平行功能的元件分組成類別。

若要傳回完整路徑並安裝 合格的元件,請呼叫 MsiProvideQualifiedComponentMsiProvideQualifiedComponentEx

若要列舉所有限定元件限定詞和描述性字串,請呼叫 MsiEnumComponentQualifiers

將元件群組在一起成為限定的元件類別

  1. [元件] 資料表中必須有一筆記錄,每個元件都包含在限定元件的新類別中。 撰寫元件資料表中的欄位,與一般元件相同。 請注意,每個限定元件都必須在 Component 資料表的 ComponentId 資料行中輸入唯一的元件識別碼 GUID。
  2. 為每個限定元件產生限定詞文字字串。 限定詞必須是唯一的文字字串,可在搜尋限定元件時輕鬆產生。 例如,如果類別中的元件是以語言限定,則數值地區設定識別碼 (LCID) 是合理的限定詞字串。
  3. 針對每個限定元件,在 PublishComponent 資料表 中新增記錄。 在 PublishComponent 資料表的 [Component_] 資料行中,從 Component 資料表的 [元件] 資料行輸入限定的元件識別碼。 在 [限定詞] 資料行中,輸入每個限定元件的限定詞字串。 輸入要向使用者顯示的當地語系化字串,並將限定元件描述為選用的 AppData 資料行。 說明字串應該放在 AppData 欄位中,例如「法文字典」,而不只是數值 LCID。 在 [Feature_] 資料行中,輸入使用此元件的功能名稱。 此欄位中的功能識別碼也必須列在 [功能] 資料表的 [功能] 資料行中。
  4. 產生此合格元件的類別 GUID。 這必須是有效的 GUID。 如果您使用 GUIDGEN 之類的公用程式來產生 GUID,請確定它只包含大寫字母。 針對此類別中的每個限定元件,請在 PublishComponent 資料表的 ComponentId 欄位中輸入類別 GUID。

下列範例說明如何將限定元件的「傳真範本」類別撰寫到元件、功能及 PublishComponent 資料表中。

PublishComponent 資料表

ComponentId Qualifier AppData 特徵_ 元件_
{傳真範本類別 GUID} 1033 美國英文範本 FAXTemplate FAXTemplateENU
  1041 日文範本 FAXTemplate FAXTemplateJPN
  1054 泰文範本 FAXTemplate FAXTemplateTHA
  1031 德文範本 FAXTemplate FAXTemplateDEU

 

元件資料表 (部分資料表)

元件 ComponentId
FAXTemplateENU {傳真範本 (美國英文) 元件 GUID}
FAXTemplateJPN {FAX 範本 (日文) 元件 GUID}
FAXTemplateTHA {FAX 範本 (泰文) 元件 GUID}
FAXTemplateDEU {FAX 範本 (德文) 元件 GUID}

 

功能資料表 (部分資料表)

功能
FAXTemplate
FAXTemplate
FAXTemplate
FAXTemplate