Registry (tabla)

La tabla Registry contiene la información del Registro que la aplicación debe establecer en el Registro del sistema.

La tabla Registry tiene estas columnas.

Columna Tipo Clave Nullable
Registro Identificador Y No
Root Entero No No
Clave RegPath No No
Nombre Con formato No Y
Value Con formato No Y
Component_ Identificador No No

 

Columnas

Registry

Clave principal que se usa para identificar un registro del Registro.

Root

Clave raíz predefinida para el valor del Registro. Escriba un valor de -1 en este campo para que la clave raíz dependa del tipo de instalación. Escriba uno de los otros valores de la tabla siguiente para forzar a que el valor del Registro se escriba en una clave raíz determinada.

Constante Hexadecimal Decimal Clave raíz
(ninguno) - 0x001 -1 Si se trata de una instalación por usuario, el valor del Registro se escribe en HKEY_CURRENT_USER. Si se trata de una instalación por máquina, el valor del Registro se escribe en HKEY_LOCAL_MACHINE. Tenga en cuenta que, si la propiedad ALLUSERS se establece en 1, se especifica una instalación por máquina.
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT El instalador escribe o quita el valor del subárbol HKCU\Software\Classes durante la instalación en el contexto de instalación por usuario.
El instalador escribe o quita el valor del subárbol HKLM\Software\Classes durante las instalaciones por máquina.
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

Tenga en cuenta que se recomienda que las entradas del Registro escritas en el subárbol HKCU hagan referencia a un componente que tenga el bit RegistryKeyPath establecido en la columna Attributes de la tabla Component. Esto garantiza que el instalador escriba las entradas necesarias del Registro cuando haya varios usuarios en el mismo equipo.

Key

Clave localizable para el valor del Registro.

Name

Esta columna contiene el nombre del valor del Registro (localizable). Si este valor es Null, los datos que se especifican en la columna Value se escriben en la clave predeterminada del Registro.

Si la columna Value es Null, las cadenas que se muestran en la tabla siguiente en la columna Name tienen una significación especial.

String Significado
+ La clave se va a crear, si no existe, cuando se instale el componente.
- La clave se eliminará, si está presente, con todos sus valores y subclaves, cuando se desinstale el componente.
* La clave se va a crear, si no existe, cuando se instale el componente. Además, la clave se eliminará, si está presente, con todos sus valores y subclaves, cuando se desinstale el componente.

 

Tenga en cuenta que se debe usar la tabla RemoveRegistry si se va a eliminar una clave instalada del Registro, con sus valores y subclaves, cuando se instale el componente.

Value

Esta columna es el valor localizable del Registro. El campo es Formatted. Si el valor se adjunta a uno de los prefijos siguientes (es decir, #%value), el valor se interpreta tal como se describe en la tabla. Tenga en cuenta que cada prefijo comienza con un signo de número (#). Si el valor comienza con dos o más signos de número (#) consecutivos, no se considera el primer # y el valor se interpreta y almacena como una cadena.

Prefijo Significado
#x El valor se interpreta y almacena como un valor hexadecimal (REG_BINARY).
#% El valor se interpreta y almacena como una cadena expansible (REG_EXPAND_SZ).
# El valor se interpreta y almacena como un entero (REG_DWORD).

 

  • Si el valor incluye una virgulilla [~], significa que se interpreta como una lista de cadenas delimitada por Null (REG_MULTI_SZ). Por ejemplo, para especificar una lista que contiene tres cadenas (a, b y c), use "a[~]b[~]c".
  • La virgulilla [~] dentro del valor separa las cadenas individuales y se interpreta y almacena como un carácter Null.
  • Si hay una [~] antes de la lista de cadenas, significa que las cadenas se anexarán a cualquier cadena de valor del Registro existente. Si ya hay una cadena anexada en el valor del Registro, se quitará la aparición original de la cadena.
  • Si hay una [~] después de la lista de cadenas, significa que las cadenas se antepondrán a cualquier cadena de valor del Registro existente. Si ya hay una cadena antepuesta al valor del Registro, se quitará la aparición original de la cadena.
  • Si hay una [~] tanto al inicio como al final de la lista de cadenas, o bien ni al principio ni al final, significa que las cadenas van a reemplazar cualquier cadena de valor del Registro existente.
  • En cualquier otro caso, el valor se interpreta y almacena como una cadena (REG_SZ).

Component_

Clave externa en la primera columna de la tabla Component que hace referencia al componente que controla la instalación del valor del Registro.

Comentarios

Las acciones WriteRegistryValues y RemoveRegistryValues en las tablas de secuencia procesan la información de esta tabla. Para más información sobre el uso de tablas de secuencia, consulte Uso de una tabla de secuencia.

La información del Registro se escribe en el Registro del sistema después de seleccionar el componente correspondiente para su instalación local o su ejecución desde el origen.

Tenga en cuenta que el instalador quita una clave del Registro después de quitar el último valor o subclave en la clave. Para evitar que se quite una clave del Registro vacía al realizar la desinstalación, escriba un valor ficticio en la clave que necesita mantener y escriba + en la columna Name. Si aparece un * en la columna Name, la clave se elimina, con todos sus valores y subclaves, cuando se quita el componente.

Una acción personalizada se puede usar para agregar filas a la tabla Registry durante una transacción de instalación, desinstalación o reparación. Estas filas no se conservan en la tabla Registry y la información solo está disponible durante la transacción actual. Por lo tanto, la acción personalizada debe ejecutarse en todas las transacciones de instalación, desinstalación o reparación que requieran la información de estas filas adicionales. La acción personalizada debe aparecer antes que las acciones RemoveRegistryValues y WriteRegistryValues en la secuencia de acciones.

Para información de cómo proteger una clave del Registro, consulte MsiLockPermissionsEx (tabla) y LockPermissions (tabla).

Validación

ICE02
ICE03
ICE06
ICE32
ICE38
ICE43
ICE46
ICE49
ICE53
ICE55
ICE57
ICE70
ICE80