ICE62

ICE62 會對 IsolatedComponent 資料表 執行大量檢查,以瞭解可能造成非預期行為的資料。

無法修正 ICE62 所報告的錯誤,可能會導致隔離元件系統以各種方式失敗。 例如,如果未為共用元件設定 SharedDllRefCount 位,當另一個應用程式使用該 ComponentId 並卸載時,就可以移除元件的註冊。

結果

ICE62 會在 IsolatedComponent 資料表中找到可能會產生非預期行為的資料時,張貼警告或錯誤。

範例

ICE62 會針對顯示的範例報告下列錯誤和警告。

The component 'Component2' is listed as an isolated application 
component in the IsolatedComponent table, but the key path is not a file.

Component2 會列為隔離 component1 的應用程式元件。 不過,Component2 具有登錄機碼路徑,而且不提供有效的可執行檔路徑來隔離元件。

若要修正此錯誤,請使用不同的元件作為隔離元件 Component1 的應用程式。

The component 'Component1' is listed as an isolated shared component in the 
IsolatedComponent table, but is not marked with the SharedDllRefCount component attribute.

Component1 會列為隔離的共用元件,但未設定 SharedDllRefCount 位。 這可能會導致元件的存留期不正確。 如果另一個應用程式使用此元件 (隔離或未) 且已卸載,則會移除元件的註冊,但此應用程式的隔離複本仍會保留。 這會導致修復和卸載問題。

若要修正此錯誤,請設定元件的 SharedDllRefCount 位。

The isolated shared component 'Component1' is not installed by the same feature as 
(or a parent feature of) its isolated application component 'Component2' (which is installed by feature 'Feature2').

Component1 和 Component2 是由不同的功能所安裝。 Component1 是由 Feature1 安裝,而 Component2 則由 Feature2 安裝。 Feature1 不是 Feature2 的父系,因此可以安裝應用程式,但無法安裝隔離元件,因而中斷隔離。

若要修正此錯誤,請將專案新增至將 Component1 連結至與 (相同的功能,或) 安裝 Component2 之功能的父功能。

WARNING: The isolated shared component 'Component1' (referenced in the IsolatedComponent table) 
is conditionalized. Isolated shared component conditions should never change from TRUE to FALSE after the first install of the product.

Component1 在 Component 資料表中有條件。 如果此條件在電腦上安裝期間從 TRUE 變更為 FALSE,隔離的元件可能會被遺棄,而不需要註冊資訊。

若要修正此警告,請移除條件或撰寫條件,使其永遠不會從 TRUE 變更為 FALSE。

WARNING: The isolated shared component 'Component1' is shared by multiple applications 
(including 'Component2') that are installed to the directory 'TARGETDIR'.
WARNING: The isolated shared component 'Component1' is shared by multiple applications 
(including 'Component3') that are installed to the directory 'TARGETDIR'.

Component1 會針對 Component2 和 Component3 隔離,而且這兩個元件也會安裝到相同的目錄。 應用程式會共用隔離的元件,但如果移除一個應用程式,則會移除共用元件,同時導致其他應用程式遺失隔離的元件。

若要修正此警告,請將應用程式安裝到不同的目錄,或檢查某些應用程式是否真的需要隔離元件。

IsolatedComponent 資料表

Component_Shared Component_Application
Component1 Component2
Component1 Component3

 

元件資料表

元件 ComponentId 目錄_ 屬性 條件 KeyPath
Component1 Dir1 0 MYCONDITION File1
Component2 TARGETDIR 4 Registry2
Component3 TARGETDIR 0 File3

 

FeatureComponentsTable

特徵_ 元件_
Feature1 Component1
Feature2 Component2
Feature1 Component3

 

功能資料表 (部分)

功能 Feature_Parent
Feature1
Feature2

 

ICE 參考