Como empacotar um assembly .NET Framework para o COM

Desenvolvedores COM podem aproveitar as informações a seguir sobre os tipos gerenciados que pretendem incorporar em seus aplicativos:

  • Uma lista de tipos que aplicativos COM podem consumir

    Alguns tipos gerenciados são visíveis para COM; alguns são visíveis, mas não instanciável; e alguns são visíveis e instanciáveis. Um assembly pode incluir qualquer combinação de tipos invisíveis, visíveis, não instanciáveis e instanciáveis. Para fins de integridade, identifique os tipos em um assembly que você pretende expor ao COM, especialmente quando esses tipos são um subconjunto dos tipos expostos ao .NET Framework.

    Para obter mais informações, consulte Qualificando tipos do .NET para interoperação.

  • Instruções de controle de versão

    Classes gerenciadas que implementam a interface de classe (uma interface gerada por interoperabilidade COM) estão sujeitas a restrições de controle de versão.

    Para obter diretrizes de como usar a interface de classe, consulte Introdução à interface de classe.

  • Instruções de implantação

    Assemblies de nome forte que são assinados por um editor podem ser instalados no cache de assembly global. Assemblies não assinados devem ser instalados no computador do usuário como assemblies particulares.

    Para obter mais informações, consulte Considerações sobre segurança de assembly.

  • Inclusão de biblioteca de tipos

    A maioria dos tipos requerem uma biblioteca de tipos quando consumidos por um aplicativo COM. Você pode gerar uma biblioteca de tipos ou fazer com que desenvolvedores COM executem essa tarefa. O SDK do Windows fornece as seguintes opções para gerar uma biblioteca de tipos:

    Independentemente do mecanismo escolhido, somente os tipos públicos definidos no assembly que você fornecer são incluídos na biblioteca de tipos gerada.

Para obter instruções, consulte Como inserir bibliotecas de tipos como recursos do Win32 em aplicativos baseados em .NET.

Exportador da Biblioteca de Tipos

O Exportador da Biblioteca de Tipos (Tlbexp.exe) é uma ferramenta de linha de comando que converte as classes e interfaces contidas em um assembly em uma biblioteca de tipos COM. Quando as informações de tipo da classe estão disponíveis, os clientes COM podem criar uma instância da classe do .NET e chamar os métodos da instância, como se fosse um objeto COM. Tlbexp.exe converte um assembly inteiro de uma vez. Não é possível usar Tlbexp.exe para gerar informações de tipo para um subconjunto dos tipos definidos em um assembly.

Classe TypeLibConverter

A classe TypeLibConverter, localizada no namespace System.Runtime.Interop, converte as classes e interfaces contidas em um assembly em uma biblioteca de tipos COM. Essa API produz as mesmas informações que o Exportador da Biblioteca de Tipos, descrito na seção anterior.

A classe TypeLibConverter implementa o ITypeLibConverter.

Ferramenta de Registro de Assembly

A Ferramenta de Registro de Assembly (Regasm.exe) pode gerar e registrar uma biblioteca de tipos quando você aplica a opção /tlb:. Clientes COM exigem que as bibliotecas de tipos sejam instaladas no Registro do Windows. Sem essa opção, o Regasm.exe registra somente os tipos em um assembly, mas não a biblioteca de tipos. Registrar os tipos em um assembly e registrando a biblioteca de tipos são atividades distintas.

Ferramenta de Instalação de Serviços .NET

A ferramenta de instalação de serviços .NET (Regsvcs.exe) adiciona classes gerenciadas para Serviços do Componente do Windows 2000 e combina várias tarefas em uma única ferramenta. Além de carregar e registrar um assembly, Regsvcs.exe pode gerar, registrar e instalar a biblioteca de tipos em um aplicativo COM+ 1.0 existente.

Confira também