共用方式為


ICE38

ICE38 會驗證目前使用者設定檔下所安裝的每個元件,也會在 Component 資料表之 KeyPath 資料行的 HKEY_CURRENT_USER 根目錄下指定登錄機碼,

結果

如果安裝在使用者配置檔下的元件未指定 HKCU 登錄機碼,ICE38 就會張貼錯誤。

ICE38 會針對顯示的範例報告下列錯誤。

ICE38 錯誤 描述
Component1 會安裝至使用者配置檔。 它必須使用 HKCU 下的登錄機碼做為其 KeyPath,而不是檔案。 Component1 的屬性數據行值為 0,這表示元件必須使用檔案作為 KeyPath。 當多個使用者在同一部計算機上安裝元件時,這會造成困難。 若要修正 Component1 上的此錯誤,請在 Component 數據表的 [屬性] 資料行中設定 RegistryKeyPath 位,並將 KeyPath 數據行中的項目變更為 Registry 數據表的 [登錄] 資料行中所列的值,
元件元件 2 會安裝至使用者配置檔。 它必須使用 HKCU 下的登錄機碼作為其 KeyPath。 KeyPath 目前為 NULL。 Component2 在 Component 資料表的 [屬性] 資料行中設定了 RegistryKeyPath 位,。 因此,KeyPath 字段必須包含 登錄數據表的登錄數據行索引鍵, 但 KeyPath 數據行為 Null。 若要修正此錯誤,請將KeyPath值變更為登錄數據表中的有效專案。
元件元件 3 會安裝至使用者配置檔。 KeyPath 登錄機碼必須落在 HKCU 之下。 Component3 在 [元件] 資料表的 [屬性] 資料行中設定了 RegistryKeyPath 位,但登錄數據表之 [根] 資料行中指定的登錄專案的根目錄會指定 HKEY_LOCAL_MACHINE,而不是 HKEY_CURRENT_USER。 若要修正此錯誤,請使用 HKEY_LOCAL_MACHINE 底下的有效登錄專案作為此元件的 KeyPath,或將 登錄 數據表的 Root 數據行中的值變更為 -1 或 1。
元件 Component4 的 KeyPath 登錄專案不存在。 Component4 在 Component 數據表的 Attributes 數據行中設定了 RegistryKeyPath 位,但 KeyPath 數據行中的專案不存在於 登錄數據表中。 若要修正此錯誤,請將 Reg4 的專案新增至位於 HKEY_CURRENT_USER之下的 登錄數據表。
登錄專案 Reg5 會設定為 Component5 的 KeyPath,但該登錄專案不屬於 Component5。 找到元件 KeyPath 數據行中所參考的登錄專案,並位於 HKCU 樹狀結構之下,但登錄專案的Component_數據行並未參考其列為 KeyPath 的相同元件。 這表示只有在安裝其他元件時,才會建立做為元件 KeyPath 的登錄專案。 若要修正此錯誤,請變更KeyPath值,以參考屬於元件的登錄專案,或變更登錄專案以使用它做為KeyPath的元件。

 

目錄資料表 (部分)

目錄 Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

元件資料表 (部分)

元件 目錄_ 屬性 KeyPath
Component1 Dir1 0 File1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

 

登入表 (部分)

註冊表 價值 元件_
Reg3 2 Component3
Reg5 0 Component4

 

ICE 參考