Partilhar via


Tabela SelfReg

A tabela SelfReg contém informações sobre módulos que precisam ser auto-registrados. O instalador chama o DllRegisterServer função durante a instalação do módulo; ele chama DllUnregisterServer durante a desinstalação do módulo. O instalador não registra automaticamente arquivos EXE.

A tabela SelfReg tem as seguintes colunas.

Coluna Tipo Chave Nulo
File_ Identificador Y N
Custo inteiro N Y

 

Colunas

File_

Chave externa na primeira coluna da tabela Arquivo indicando o módulo que precisa ser registrado.

Custo

O custo de registrar o módulo em bytes. Este deve ser um número não negativo.

Comentários

Os autores do pacote de instalação são fortemente desaconselhados a usar o auto-registro. Em vez disso, eles devem registrar módulos criando uma ou mais tabelas fornecidas pelo instalador para essa finalidade. Para obter mais informações, consulte Grupo de Tabelas do Registro. Muitos dos benefícios de ter um serviço de instalação central são perdidos com o auto-registro porque as rotinas de auto-registro tendem a ocultar informações críticas de configuração. As razões para evitar o auto-registo incluem:

  • A reversão de uma instalação com módulos auto-registrados não pode ser feita com segurança usando DllUnregisterServer porque não há nenhuma maneira de dizer se as chaves auto-registradas são usadas por outro recurso ou aplicativo.
  • A capacidade de usar anúncios é reduzida se o registro do servidor de classe ou extensão for realizado dentro de rotinas de auto-registro.
  • O instalador manipula automaticamente as chaves HKCR nas tabelas do Registro para instalações por usuário ou por máquina. rotinas de DllRegisterServer atualmente não suportam a noção de uma chave HKCR por usuário.
  • Se vários usuários estiverem usando um aplicativo autoregistrado no mesmo computador, cada usuário deverá instalar o aplicativo na primeira vez que executá-lo. Caso contrário, o instalador não pode determinar facilmente que as chaves de registro HKCU adequadas existem.
  • O DllRegisterServer pode ter acesso negado a recursos de rede, como bibliotecas de tipos, se um componente for especificado como run-from-source e estiver listado na tabela SelfReg. Isso pode fazer com que a instalação do componente falhe durante uma instalação administrativa.
  • DLLs de auto-registro são mais suscetíveis a erros de codificação porque o novo código necessário para DllRegisterServer é geralmente diferente para cada DLL. Em vez disso, use as tabelas do Registro no banco de dados para aproveitar o código existente fornecido pelo instalador.
  • Às vezes, as DLLs de auto-registro podem ser vinculadas a DLLs auxiliares que não estão presentes ou são a versão errada. Em contraste, o instalador pode registrar as DLLs usando as tabelas de registro sem dependência do estado atual do sistema.

Observação

Não é possível especificar a ordem na qual o instalador registra ou cancela o registro de DLLs de auto-registro usando o SelfRegModules e ações de SelfUnRegModules. Consulte Especificando a ordem de auto-registro.

 

Validação

ICE03
ICE06
ICE32