ICE62

ICE62 realiza comprobaciones exhaustivas en la tabla IsolatedComponent para identificar los datos que pueden provocar un comportamiento inesperado.

Si no se corrige un error que ICE62 ha notificado, se puede producir un error en el sistema de componentes aislados de varias maneras. Por ejemplo, si el bit SharedDllRefCount no está establecido para un componente compartido, el registro del componente podría quitarse cuando otra aplicación usa ese ComponentId y se desinstala.

Resultado

ICE62 publica una advertencia o un error cuando encuentra datos en la tabla IsolatedComponent que pueden producir un comportamiento inesperado.

Ejemplo

ICE62 notifica los siguientes errores y advertencias para los ejemplos mostrados.

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

Component2 aparece como el componente de aplicación para el aislamiento de component1. Sin embargo, Component2 tiene una ruta de acceso a la clave del Registro y no proporciona una ruta de acceso ejecutable válida que se pueda usar para aislar el componente.

Para corregir este error, use un componente diferente como aplicación para el componente aislado 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 aparece como un componente compartido aislado, pero no tiene establecido el bit SharedDllRefCount. Esto podría dar lugar a que la duración del componente sea incorrecta. Si otra aplicación usa este componente (aislado o no) y se desinstala, se quita el registro del componente, pero la copia aislada de esta aplicación permanece. Esto provoca problemas de reparación y desinstalación.

Para corregir este error, establezca el bit SharedDllRefCount para el componente.

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

A Component1 y Component2 los instalan diferentes características. Feature1 instala Component1 y Feature2 instala Component2. Feature1 no es un elemento primario de Feature2, por lo que es posible que la aplicación se instale, pero no el componente aislado, lo que interrumpirá el aislamiento.

Para corregir este error, agregue una entrada a la tabla FeatureComponents que vincula Component1 a la misma característica (o a una característica primaria) que la característica que instala 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 tiene una condición en la tabla Component. Si esta condición cambia de TRUE a FALSE durante el período de duración de una instalación en un equipo, el componente aislado podría quedarse huérfano sin información de registro.

Para corregir esta advertencia, quite la condición o cree la condición de manera que nunca pueda cambiar de TRUE a 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 está aislado para Component2 y Component3, y los dos componentes también se instalan en el mismo directorio. Las aplicaciones comparten un componente aislado, pero si se quita una aplicación, se quita el componente compartido, lo que hace que las demás aplicaciones pierdan el componente aislado.

Para corregir esta advertencia, instale las aplicaciones en directorios diferentes o compruebe si algunas de las aplicaciones realmente requieren un componente aislado.

Tabla IsolatedComponent

Component_Shared Component_Application
Component1 Component2
Component1 Component3

 

Tabla Component

Componente ComponentId Directory_ Atributos Condición KeyPath
Component1 Dir1 0 MYCONDITION Archivo1
Component2 TARGETDIR 4 Registry2
Component3 TARGETDIR 0 File3

 

FeatureComponentsTable

Feature_ Component_
Feature1 Component1
Feature2 Component2
Feature1 Component3

 

Tabla Feature (parcial)

Característica Feature_Parent
Feature1
Feature2

 

Referencia de ICE