Compartilhar via


Registro do VSPackage

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

Observação

É uma prática aceita durante o desenvolvimento do VSPackage usar o auto-registro. No entanto, os parceiros de programa do Visual Studio Industry Partner (VSIP) 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 do Registro. Você também pode registrar extensões de arquivo na tabela Registro. No entanto, o Windows Installer fornece suporte interno por meio do identificador programático (ProgId), classe, extensão e tabelas de verbos. Para obter mais informações, consulte Tabelas de banco de dados.

Certifique-se de que as entradas do Registro estejam associadas ao componente apropriado para a estratégia lado a lado escolhida. Por exemplo, as entradas do Registro para um arquivo compartilhado devem ser associadas ao componente Windows Installer desse arquivo. Da mesma forma, as entradas do Registro para um arquivo específico da versão devem ser associadas ao componente desse arquivo. Caso contrário, instalar ou desinstalar o VSPackage para uma versão do Visual Studio pode interromper o VSPackage em outras versões. Para obter mais informações, consulte Dando 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 o registro do desenvolvedor e o registro em tempo de instalação. Por exemplo, algumas ferramentas de desenvolvimento do instalador podem consumir arquivos no formato .reg em tempo de compilação. Se os desenvolvedores mantiverem arquivos .reg para seu próprio desenvolvimento e depuração diários, esses mesmos arquivos poderão ser incluídos no instalador automaticamente. Se você não puder compartilhar automaticamente os dados de registro, deverá garantir que a cópia dos dados de registro do instalador esteja atualizada.

Registrando VSPackages não gerenciados

VSPackages não gerenciados (incluindo aqueles 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 como está por uma ferramenta de criação de instalação. As informações de registro para o instalador do VSPackage devem ser mantidas separadamente. Por exemplo, os desenvolvedores podem manter os arquivos no formato .reg sincronizados com as alterações de arquivo .rgs. Os arquivos .reg podem ser mesclados com o 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 no formato .reg 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 se registrar automaticamente no momento da instalação

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

Embora 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 requer que você crie quatro ações personalizadas para cada VSPackage gerenciado que se registra automaticamente chamando RegPkg.

  • Sua abordagem ao 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.

  • DLLs auto-registradas às vezes vinculam 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 acesso de auto-registro pode ser negado a recursos de rede, como bibliotecas de tipos, se um componente for especificado como executado a partir da origem e estiver listado na tabela SelfReg. Isso pode fazer com que a instalação do componente falhe durante uma instalação administrativa.