Udostępnij za pośrednictwem


ICE62

ICE62 przeprowadza obszerne kontrole w tabeli IsolatedComponent danych, które mogą powodować nieoczekiwane zachowanie.

Niepowodzenie naprawy błędu zgłoszonego przez ICE62 może spowodować awarię izolowanego systemu składników na wiele różnych sposobów. Jeśli na przykład bit SharedDllRefCount nie jest ustawiony dla składnika udostępnionego, rejestracja składnika może zostać usunięta, gdy inna aplikacja używa tego identyfikatora ComponentId i zostanie odinstalowana.

Wynik

ICE62 publikuje ostrzeżenie lub błąd podczas znajdowania danych w tabeli IsolatedComponent, które mogą powodować nieoczekiwane zachowanie.

Przykład

ICE62 zgłasza następujące błędy i ostrzeżenie dotyczące pokazanych przykładów.

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

Składnik2 jest wymieniony jako składnik aplikacji na potrzeby izolacji składnika Component1. Jednak składnik Component2 ma ścieżkę klucza rejestru i nie udostępnia prawidłowej ścieżki wykonywalnej, która ma być używana do izolowania składnika.

Aby naprawić ten błąd, użyj innego składnika jako aplikacji dla izolowanego składnika Component1.

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

Składnik1 jest wymieniony jako izolowany składnik udostępniony, ale nie ma ustawionego bitu SharedDllRefCount. Może to spowodować, że okres istnienia składnika jest niepoprawny. Jeśli inna aplikacja używa tego składnika (izolowanego lub nie) i zostanie odinstalowana, rejestracja składnika zostanie usunięta, ale kopia izolowana tej aplikacji pozostanie. Powoduje to problemy z naprawą i odinstalowaniem.

Aby naprawić ten błąd, ustaw bit SharedDllRefCount dla składnika.

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').

Składniki1 i Component2 są instalowane przez różne funkcje. Składnik1 jest instalowany przez funkcję Feature1, a składnik Component2 jest instalowany przez funkcję Feature2. Funkcja Feature1 nie jest elementem nadrzędnym funkcji Feature2, dlatego istnieje możliwość zainstalowania aplikacji, ale nie składnika izolowanego, przerywając izolację.

Aby rozwiązać ten błąd, dodaj wpis do tabeli FeatureComponents łączący Składnik1 z tą samą funkcją co (lub funkcja nadrzędna) funkcji instalowanej przez składnik2.

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.

Składnik1 ma warunek w tabeli Składnik. Jeśli ten warunek kiedykolwiek zmieni się z TRUE na FALSE w okresie istnienia instalacji na komputerze, izolowany składnik może być oddzielony bez informacji o rejestracji.

Aby naprawić to ostrzeżenie, usuń warunek lub utwórz warunek, aby nigdy nie mógł zmienić wartości z TRUE na 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'.

Składnik1 jest izolowany zarówno dla składników Component2, jak i Component3, a dwa składniki są również instalowane w tym samym katalogu. Aplikacje współdzielą składnik izolowany, ale jeśli jedna aplikacja zostanie usunięta, składnik udostępniony zostanie usunięty, a także spowoduje utratę przez inne aplikacje izolowanego składnika.

Aby rozwiązać ten problem, zainstaluj aplikacje w różnych katalogach lub sprawdź, czy niektóre aplikacje naprawdę wymagają izolowanego składnika.

izolowana tabelacomponent

Component_Shared Component_Application
Składnik1 Składnik2
Składnik1 Składnik3

 

tabeli składników

Składnik Identyfikator składnika Katalog_ Atrybuty Warunek KeyPath
Składnik1 Dir1 0 MYCONDITION Plik1
Składnik2 TARGETDIR 4 Rejestr2
Składnik3 TARGETDIR 0 Plik3

 

FeatureComponentsTable

Cecha_ Składnik_
Funkcja1 Składnik1
Funkcja2 Składnik2
Funkcja1 Składnik3

 

tabela funkcji (częściowa)

Cecha Feature_Parent
Funkcja1
Funkcja2

 

dokumentacji ICE