Partilhar via


Como registrar assemblies de interoperabilidade primários

As classes só podem ser organizadas por interoperabilidade COM e são sempre organizadas como interfaces. Em alguns casos, a interface usada para organizar a classe é conhecida como interface de classe. Para obter informações sobre como substituir a interface de classe por uma interface de sua escolha, consulte COM Callable Wrapper.

Embora qualquer desenvolvedor que queira usar tipos COM de um aplicativo .NET Framework possa gerar um assembly de interoperabilidade, isso cria um problema. Cada vez que um desenvolvedor importa e assina uma biblioteca de tipos COM, esse desenvolvedor cria um conjunto de tipos exclusivos que são incompatíveis com aqueles importados e assinados por outro desenvolvedor. A solução para esse tipo de problema de incompatibilidade é que cada desenvolvedor obtenha o assembly de interoperabilidade primário fornecido e assinado pelo fornecedor.

Se você planeja expor tipos COM de terceiros a outros aplicativos, sempre use o assembly de interoperabilidade primário fornecido pelo mesmo editor que a biblioteca de tipos que ele define. Além de fornecer compatibilidade de tipo garantida, os assemblies de interoperabilidade primários geralmente são personalizados pelo fornecedor para melhorar a interoperabilidade.

Mesmo que você não planeje expor tipos COM de terceiros, usar o assembly de interoperabilidade primário pode facilitar a tarefa de interoperar com componentes COM. No entanto, essa estratégia não fornece isolamento de alterações que um fornecedor pode fazer em tipos definidos em um assembly de interoperabilidade primário. Quando seu aplicativo exigir esse isolamento, gere seu próprio conjunto de interoperabilidade em vez de usar o conjunto de interoperabilidade primário.

Você deve registrar todos os assemblies de interoperabilidade primários adquiridos em seu computador de desenvolvimento antes de fazer referência a eles com o Visual Studio. O Visual Studio procura e usa um assembly de interoperabilidade primário na primeira vez que você faz referência a um tipo de uma biblioteca de tipos COM. Se o Visual Studio não puder localizar o assembly de interoperabilidade primário associado à biblioteca de tipos, ele solicitará que você o adquira ou oferecerá a criação de um assembly de interoperabilidade. Da mesma forma, o Importador de Biblioteca de Tipos (Tlbimp.exe) também usa o Registro para localizar assemblies de interoperabilidade primários.

Embora não seja necessário registrar assemblies de interoperabilidade primários, a menos que você planeje usar o Visual Studio, o registro oferece duas vantagens:

  • Um assembly de interoperabilidade primário registrado é claramente marcado sob a chave do Registro da biblioteca de tipos original. O registro é a melhor maneira de localizar um assembly de interoperabilidade primário em seu computador.

  • Você pode evitar gerar e usar acidentalmente um novo assembly de interoperabilidade se, em algum momento no futuro, você usar o Visual Studio para fazer referência a um tipo para o qual você tem um assembly de interoperabilidade primária não registrado.

Use a Ferramenta de Registro de Montagem (Regasm.exe) para registrar um assembly de interoperabilidade primário.

Para registrar um assembly de interoperabilidade primário

  1. Na linha de comandos, escreva:

    regasm assemblyname

    Neste comando, assemblyname é o nome do arquivo do assembly que está registrado. Regasm.exe adiciona uma entrada para o assembly de interoperabilidade primário sob a mesma chave do Registro que a biblioteca de tipos original.

Exemplo

O exemplo a seguir registra o CompanyA.UtilLib.dll assembly de interoperabilidade primário.

regasm CompanyA.UtilLib.dll

Consulte também