功能資料表
功能資料表會定義特徵的邏輯樹狀結構,並包含下表中顯示的資料行。
資料行 | 類型 | 答案 | Nullable |
---|---|---|---|
功能 | 識別碼 | Y | N |
Feature_Parent | 識別碼 | N | Y |
標題 | Text | N | Y |
Description | Text | N | Y |
顯示 | 整數 | N | Y |
層級 | 整數 | N | N |
目錄_ | 識別碼 | N | Y |
屬性 | 整數 | N | N |
資料行
-
特徵
-
用來識別特定特徵記錄的主鍵。 此欄位中的值不能超過長度上限 38 個字元。
-
Feature_Parent
-
相同資料表中父記錄的選擇性索引鍵。
索引鍵會指向 [功能] 資料行。 如果未選取父功能,則不會安裝此功能。 此欄位中的 Null 值表示這項功能沒有父代,而且是根專案。 Feature_Parent資料行不等於相同記錄的功能資料行。
注意
任何功能的深度上限為 16。 如果超過此最大深度的功能存在,則會產生 錯誤 2701 。
-
標題
-
識別功能的簡短文字字串。
此字串會依選取對話方塊的SelectionTree 控制項列為專案。
-
描述
-
描述功能之文字的較長字串。
這個可當地語系化的字串是由[選取範圍] 對話方塊的[文字控制項] 顯示。
-
顯示
-
此欄位中的數位會指定功能顯示在使用者介面中的順序。
值也會決定功能一開始是展開還是折迭。 如果值為 null 或 0 (零) ,則不會顯示記錄。
- 如果值為奇數,則功能節點一開始會展開。
- 如果值偶數,則功能節點一開始會折迭。
-
水準
-
這項功能的初始安裝層級。 處理 條件資料表 可以修改層級值。
安裝層級為 0 (零,) 會停用專案,並防止它顯示。 任何安裝期間都不會安裝安裝層級為 0 (零) 的功能,包括系統管理安裝。 如需詳細資訊,請參閱本主題一節中的資訊。
-
目錄_
-
Directory_資料行會指定 [ 選取範圍對話方塊] 可設定的目錄名稱。
因為此欄位是 目錄資料表的索引鍵,所以指定的目錄必須列在 [目錄資料表] 的第一個資料行中。 您必須在此資料行中輸入Public 屬性,才能設定目錄,並在[選取範圍] 對話方塊上顯示[流覽] 按鈕。
-
屬性
-
未安裝之功能的遠端執行選項,以及未使用下列任何屬性提出任何功能狀態要求的功能。
- ADDLOCAL 屬性
- ADDSOURCE 屬性
- ADDDEFAULT 屬性
- COMPADDLOCAL 屬性
- COMPADDSOURCE 屬性
- FILEADDLOCAL 屬性
- FILEADDSOURCE 屬性
- REMOVE 屬性
- REINSTALL 屬性
- ADVERTISE 屬性
將指定的位新增至此資料行的總值,以包含遠端執行選項。
- 如果此欄位為空白,則值預設為 0 (零) msidbFeatureAttributesFavorLocal。
- 如果功能安裝層級為 0 (零) ,或大於或等於目前的安裝層級,則不會變更功能狀態。
名稱 Decimal 十六進位 Description msidbFeatureAttributesFavorLocal 0 0x0000 未標示為從來源安裝之此功能的元件會在本機安裝。 由兩個或多個功能共用的元件,其中有些功能設定為 msidbFeatureAttributesFavorLocal,有些則設定為 msidbFeatureAttributesFavorSource 本機。 元件資料表中標示為 msidbComponentAttributesSourceOnly 的元件一律會從來源 CD/伺服器執行。 bits msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 會使用 ADVERTISE 屬性未列出的功能。 msidbFeatureAttributesFavorSource 1 0x0001 未標示為本機安裝的元件會安裝為從來源 CD-ROM 或伺服器執行。 由兩個或多個功能共用的元件,其中某些元件會設定為 msidbFeatureAttributesFavorLocal,而某些元件則安裝為 msidbFeatureAttributesFavorSource,以在本機執行。 元件資料表中標示為 msidbComponentAttributesLocalOnly 的元件一律會安裝在本機。 bits msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 會使用 ADVERTISE 屬性未列出的功能。 msidbFeatureAttributesFollowParent 2 0x0002 設定此屬性和功能的狀態與功能父系的狀態相同。 如果功能位於功能樹狀結構的根目錄,則無法使用此選項。 省略這個屬性,而且功能狀態是根據 msidbFeatureAttributesDisallowAdvertise 和 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 來決定。
若要保證子功能的狀態一律遵循其父系的狀態,即使子系和父系一開始設定為 SelectionTree 控制項中不存在,您也必須在子功能的屬性中包含 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent。
請注意,如果您設定 msidbFeatureAttributesFollowParent 而不設定 msidbFeatureAttributesUIDisallowAbsent,安裝程式就無法強制子功能離開不存在的狀態。 在此情況下,只有在子系設定為不存在的專案時,子功能才會符合父系的安裝狀態。
設定 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 以確保子功能遵循父功能的狀態。msidbFeatureAttributesFavorAdvertise 4 0x0004 設定此屬性,且功能狀態為 [公告]。 如果 ADDDEFAULT 屬性 列出此功能,則會忽略此位,而且功能狀態會根據 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 來決定。 省略這個屬性,而且功能狀態是根據 msidbFeatureAttributesDisallowAdvertise 和 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 來決定。 msidbFeatureAttributesDisallowAdvertise 8 0x0008 請注意,此位只適用于 ADVERTISE 屬性所列出的功能。 設定此屬性以防止公告功能。
設定這個屬性,如果列出的功能不是父或子項,則會根據 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 安裝此功能。
為列出的功能父系設定這個屬性,並安裝父代。
為列出的功能子系設定此屬性,且子系的狀態為 Absent。
省略此屬性,如果列出的功能不是父或子系,則功能狀態為 [公告]。
省略這個屬性,如果列出的功能是父項或子系,則這兩個功能的狀態都是「公告」。msidbFeatureAttributesUIDisallowAbsent 16 0x0010 設定此屬性,且使用者介面不會顯示將功能狀態變更為 Absent 的選項。 設定此屬性會強制功能進入安裝狀態,不論此功能是否顯示在 UI 中。 省略此屬性,而使用者介面會顯示選項,將功能狀態變更為 Absent。
設定 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 以確保子功能遵循父功能的狀態。
設定此屬性不僅會影響 UI,也會強制功能安裝狀態,不論此功能是否顯示在 UI 中。msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 如果作業系統殼層不支援 Windows Installer 描述項,則會停用此功能的此屬性和廣告。 省略此屬性,且不會停用廣告。 有些屬性彼此互斥。 嘗試在相同的功能上將這些屬性設定在一起,會導致安裝套件失敗 套件驗證。
- 請勿搭配 msidbFeatureAttributesFavorAdvertise 搭配 msidbFeatureAttributesDisallowAdvertise。
- 請勿搭配 msidbFeatureAttributesNoUnsupportedAdvertise 搭配 msidbFeatureAttributesDisallowAdvertise 一起使用。
- 請勿搭配 msidbFeatureAttributesFollowParent 搭配 msidbFeatureAttributesFavorSource。
- 請注意,msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesFavorLocal 值互斥。 如果使用 msidbFeatureAttributesFollowParent 值,則會假設 msidbFeatureAttributesFavorLocal 值不存在。
請注意,如果已安裝子功能,也會安裝其父功能。 如果已安裝父功能,除非已設定其 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 屬性,否則不會安裝其子功能。 這個父和子功能的安裝階層式關聯性也用於使用命令列屬性的 GUI 安裝和安裝。
備註
將數個額外的暫存資料行新增至此資料表,以供成本計算和使用者介面 (UI) 選取所使用。
元件可以在兩個或多個功能或應用程式之間共用。 如果兩個或多個功能參考相同的元件,則會在選取任何相關聯的功能時選取該元件進行安裝。 這也可能是移除父功能時未卸載子功能的原因。 如果子功能是由其他功能或應用程式所需的元件所組成,Windows Installer 就不會移除子功能。
如需詳細資訊,請參閱 控制特徵選取狀態。
安裝層級:
- 對於任何安裝,都有定義的安裝層級,這是從 1 到 32,767 的整數值。 初始值是由 INSTALLLEVEL 屬性所決定,這個屬性是在 Property Table中設定的。
- 只有在功能層級值小於或等於目前的安裝層級時,才會安裝功能。 您可以撰寫 UI,以便在初始化安裝時,安裝程式可讓使用者修改功能資料表中任何功能的安裝層級。 例如,作者可以定義代表特定安裝選項的安裝層級值,例如 Custom、 Typical或 Minimum,然後建立使用 SetInstallLevel ControlEvents 的對話方塊,讓使用者選取其中一個狀態。
- 根據使用者選取的狀態,對話方塊會將安裝層級屬性設定為對應的值。 如果作者指派 [一般 ] 層級為 100,且使用者選取 [ 一般],則只會安裝層級為 100 或更少的功能。 此外, [自訂 ] 選項可能會導致另一個包含 SelectionTree 控制項的對話方塊。 然後 SelectionTree 控制項可讓使用者個別變更是否安裝每項功能。
驗證
ICE03
ICE06
ICE10
ICE14
ICE21
ICE32
ICE41
ICE45
ICE47
ICE50
ICE57
ICE59
ICE62
ICE67
ICE79
ICE86
ICE94