Compartilhar via


Registro do VSPackage

Os VSPackages devem informar ao Visual Studio que estão instalados e devem ser carregados. Esse processo é realizado escrevendo informações no registro. Esse é um trabalho típico de um instalador.

Observação

É uma prática aceita durante o desenvolvimento do VSPackage para usar o auto-registro. No entanto, os parceiros do programa VSIP (Visual Studio Industry Partner) não podem enviar seus produtos usando o auto-registro como parte da instalação.

As entradas do Registro em um pacote do Windows Installer geralmente são feitas na tabela Registro. Você também pode registrar extensões de arquivo na tabela Registro. No entanto, o Windows Installer fornece suporte embutido por meio das tabelas de identificador programático (ProgId), classe, extensão e verbo. Para obter mais informações, consulte Tabelas de Banco de Dados.

Verifique se as entradas do Registro estão associadas ao componente apropriado para sua estratégia lado a lado escolhida. Por exemplo, as entradas do Registro para um arquivo compartilhado devem ser associadas ao componente do Windows Installer desse arquivo. Da mesma forma, as entradas do Registro para um arquivo versão-específica devem ser associadas ao componente correspondente a esse arquivo. Caso contrário, instalar ou desinstalar o VSPackage para uma versão do Visual Studio pode causar problemas no VSPackage em outras versões. Para obter mais informações, consulte Suporte a várias versões do Visual Studio.

Observação

A maneira mais fácil de gerenciar o registro é usar os mesmos dados nos mesmos arquivos para registro de desenvolvedor e registro em tempo de instalação. Por exemplo, algumas ferramentas de desenvolvimento do instalador podem consumir arquivo no formato .reg no momento da compilação. Se os desenvolvedores mantiverem arquivos .reg para o seu desenvolvimento e depuração diários, esses mesmos arquivos poderão ser automaticamente incluídos no instalador. Se você não puder compartilhar dados de registro automaticamente, deverá garantir que a cópia do instalador dos dados de registro seja atual.

Registrando VSPackages não gerenciados

VSPackages não gerenciados (incluindo os gerados pelo Modelo de Pacote do Visual Studio) usam arquivos .rgs no estilo ATL para armazenar informações de registro. O formato de arquivo .rgs é específico para ATL e geralmente não pode ser consumido as-is por uma ferramenta de criação de instalação. As informações de registro do instalador do VSPackage devem ser mantidas separadamente. Por exemplo, os desenvolvedores podem manter arquivos em .reg formato em sincronia com alterações de arquivo .rgs. Os arquivos .reg podem ser mesclados com RegEdit para trabalho de desenvolvimento ou consumidos por um instalador.

Registrando VSPackages Gerenciados

A ferramenta RegPkg lê os atributos de registro de um VSPackage gerenciado e pode gravar as informações diretamente no registro ou gravar arquivos .reg formato que podem ser consumidos por um instalador.

Observação

A ferramenta RegPkg não é redistribuível e não pode ser usada para registrar um VSPackage no sistema de um usuário.

Por que os VSPackages não devem Self-Register no momento da instalação

Os instaladores do VSPackage não devem depender do auto-registro. À primeira vista, manter os valores de registro de um VSPackage apenas no VSPackage em si parece uma boa ideia. Dado que os desenvolvedores precisam dos valores do Registro disponíveis para seu trabalho e teste de rotina, faz sentido evitar a manutenção de uma cópia separada dos dados do Registro no instalador. O instalador pode contar com o vspackage em si para gravar valores de registro.

Embora seja bom em teoria, o auto-registro tem várias falhas que o tornam inadequado para a instalação do VSPackage:

  • O suporte correto à instalação, desinstalação, reversão de instalação e reversão de desinstalação exige que você crie quatro ações personalizadas para cada VSPackage gerenciado que se registre automaticamente ao chamar RegPkg.

  • Sua abordagem para suporte lado a lado pode exigir que você crie quatro ações personalizadas que invocam RegSvr32 ou RegPkg para cada versão com suporte do Visual Studio.

  • Uma instalação com módulos auto-registrados não pode ser revertida com segurança porque não há como dizer se as chaves auto-registradas são usadas por outro recurso ou aplicativo.

  • As DLLs auto-registradas às vezes vinculam-se a DLLs auxiliares que não estão presentes ou são a versão errada. Por outro lado, o Windows Installer pode registrar DLLs usando as tabelas do Registro sem dependência do estado atual do sistema.

  • O código de auto-registro pode não ter acesso 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.