ICE38
ICE38 會驗證目前使用者設定檔下所安裝的每個元件,也會在Component 資料表的 KeyPath 資料行的HKEY_CURRENT_USER根目錄下指定登錄機碼。
結果
如果安裝在使用者設定檔下的元件未指定 HKCU 登錄機碼,ICE38 就會張貼錯誤。
範例
ICE38 報告範例的下列錯誤。
ICE38 錯誤 | Description |
---|---|
元件元件元件 1 會安裝至使用者設定檔。 它必須使用 HKCU 下的登錄機碼作為其 KeyPath,而不是檔案。 | Component1 的屬性資料行值為 0,這表示元件必須使用檔案做為其 KeyPath。 這會導致多位使用者在同一部電腦上安裝元件時發生困難。 若要修正 Component1 上的此錯誤,請在 Component 資料表 的 Attributes 資料行中設定 RegistryKeyPath 位,並將 KeyPath 資料行中的專案變更為 Registry 資料表的 Registry 資料行中列出的值。 |
元件元件 2 會安裝至使用者設定檔。 它必須使用 HKCU 下的登錄機碼作為其 KeyPath。 KeyPath 目前為 Null。 | Component2 已在 Component 資料表的 Attributes 資料行中設定 RegistryKeyPath 位。 因此,KeyPath 欄位必須包含登錄 資料表 之登錄資料行的索引鍵,但 KeyPath 資料行為 Null。 若要修正此錯誤,請將 KeyPath 值變更為登錄資料表中的有效專案。 |
元件元件 3 會安裝至使用者設定檔。 其 KeyPath 登錄機碼必須落在 HKCU 之下。 | Component3 在 Component 資料表 的 Attributes 資料行中設定 RegistryKeyPath 位,但登錄資料表之 Root 資料行中指定的登錄專案根目錄會指定 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 | 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 |
登錄表 (部分)
登錄 | Root | 值 | 元件_ |
---|---|---|---|
Reg3 | 2 | Component3 | |
Reg5 | 0 | Component4 |
相關主題