Tabela Registry

A tabela Registry contém as informações do Registro que o aplicativo precisa definir no Registro do sistema.

Ela tem as colunas a seguir.

Coluna Tipo Chave Nullable
Registro Identificador S N
Root Inteiro N N
Chave RegPath N N
Nome Formatted N S
Valor Formatted N S
Component_ Identificador N N

 

Colunas

Registry

Chave primária usada para identificar um registro do Registro.

Root

A chave raiz predefinida para o valor do Registro. Insira um valor -1 nesse campo para tornar a chave raiz dependente do tipo de instalação. Insira um dos outros valores da tabela a seguir para forçar o valor do Registro a ser gravado em uma chave raiz específica.

Constante Hexadecimal Decimal Chave raiz
(nenhum) - 0x001 -1 Se essa for uma instalação por usuário, o valor do Registro será gravado em HKEY_CURRENT_USER. Se essa for uma instalação por computador, o valor do Registro será gravado em HKEY_LOCAL_MACHINE. Observe que uma instalação por computador é especificada pela definição da propriedade ALLUSERS como 1.
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOTO instalador grava ou remove o valor do hive HKCU\Software\Classes durante a instalação no contexto de instalação por usuário.
O instalador grava ou remove o valor do hive HKLM\Software\Classes durante as instalações por computador.
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

Observe que recomendamos que as entradas do Registro gravadas no hive HKCU referenciem um componente com o bit RegistryKeyPath definido na coluna Attributes da tabela Component. Isso garante que o instalador grave as entradas necessárias do Registro quando houver vários usuários no mesmo computador.

Key

A chave localizável para o valor do Registro.

Name

Essa coluna contém o nome do valor do Registro (localizável). Se isso for Null, os dados inseridos na coluna Value serão gravados na chave padrão do Registro.

Se a coluna Value for Null, as cadeias de caracteres mostradas na tabela a seguir da coluna Name terão um significado especial.

String Significado
+ A chave deverá ser criada, se ausente, quando o componente for instalado.
- A chave deverá ser excluída, se presente, com todos os valores e as subchaves, quando o componente for desinstalado.
* A chave deverá ser criada, se ausente, quando o componente for instalado. Além disso, a chave deverá ser excluída, se presente, com todos os valores e as subchaves, quando o componente for desinstalado.

 

Observe que a tabela RemoveRegistry precisará ser usada se uma chave do Registro instalada precisar ser excluída, com os valores e as subchaves, quando o componente for instalado.

Value

Essa coluna é o valor do Registro localizável. O campo é Formatted. Se o valor estiver anexado a um dos prefixos a seguir (ou seja, #%value), o valor será interpretado conforme descrito na tabela. Observe que cada prefixo começa com uma tecla jogo da velha (#). Se o valor começar com duas ou mais teclas jogo da velha consecutivas (#), a primeira # será ignorada e o valor será interpretado e armazenado como uma cadeia de caracteres.

Prefixo Significado
#x O valor é interpretado e armazenado como um valor hexadecimal (REG_BINARY).
#% O valor é interpretado e armazenado como uma cadeia de caracteres expansível (REG_EXPAND_SZ).
# O valor é interpretado e armazenado como um inteiro (REG_DWORD).

 

  • Se o valor contiver o til de sequência [~], o valor será interpretado como uma lista delimitada por Null de cadeias de caracteres (REG_MULTI_SZ). Por exemplo, para especificar uma lista que contém as três cadeias de caracteres a, b e c, use "a[~]b[~]c".
  • A sequência [~] dentro do valor separa as cadeias de caracteres individuais e é interpretada e armazenada como um caractere Null.
  • Se um [~] preceder a lista de cadeias de caracteres, as cadeias de caracteres deverão ser acrescentadas a todas as cadeias de caracteres de valor do Registro existentes. Se uma cadeia de caracteres de acréscimo já ocorrer no valor do Registro, a ocorrência original da cadeia de caracteres será removida.
  • Se um [~] aparecer no final da lista de cadeias de caracteres, as cadeias de caracteres deverão ser colocadas antes de todas as cadeias de caracteres de valor do Registro existentes. Se uma cadeia de caracteres colocada antes já ocorrer no valor do Registro, a ocorrência original da cadeia de caracteres será removida.
  • Se um [~] estiver no início e no final ou nem no início nem no final da lista de cadeias de caracteres, as cadeias de caracteres deverão substituir todas as cadeias de caracteres de valor do Registro existentes.
  • Caso contrário, o valor será interpretado e armazenado como uma cadeia de caracteres (REG_SZ).

Component_

Chave externa na primeira coluna da tabela Component que referencia o componente que controla a instalação do valor do Registro.

Comentários

As ações WriteRegistryValues e RemoveRegistryValues nas tabelas de sequência processam as informações nessa tabela. Para obter informações sobre como usar tabelas de sequência, confira Como usar uma tabela de sequência.

As informações do Registro são gravadas no Registro do sistema quando o componente correspondente é selecionado para ser instalado localmente ou executado por meio da origem.

Observe que o instalador remove uma chave do Registro depois de remover o último valor ou a subchave da chave. Para impedir que uma chave vazia do Registro seja removida durante a desinstalação, escreva um valor fictício na chave que você precisa manter e insira + na coluna Name. Se * estiver na coluna Name, a chave será excluída, com todos os valores e as subchaves, quando o componente for removido.

Uma ação personalizada pode ser usada para adicionar linhas à tabela Registry durante uma transação de instalação, desinstalação ou reparo. Essas linhas não são persistentes na tabela Registry, e as informações só ficam disponíveis durante a transação atual. Portanto, a ação personalizada precisa ser executada em todas as transações de instalação, desinstalação ou reparo que exijam as informações nessas linhas adicionais. A ação personalizada precisa vir antes das ações RemoveRegistryValues e WriteRegistryValues na sequência de ações.

Para obter informações sobre como proteger uma chave do Registro, confira Tabela MsiLockPermissionsEx e Tabela LockPermissions.

Validação

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