Partilhar via


Como gerar assemblies de interoperabilidade primários usando o Tlbimp.exe

Há duas maneiras de gerar um assembly de interoperabilidade primário:

  • Usando o Importador de Biblioteca de Tipos (Tlbimp.exe) fornecido pelo SDK do Windows.

    A maneira mais simples de produzir assemblies de interoperabilidade primários é usar o Tlbimp.exe (Importador de Biblioteca de Tipos). Tlbimp.exe prevê as seguintes salvaguardas:

    • Verifica se há outros assemblies de interoperabilidade primários registrados antes de criar novos assemblies de interoperabilidade para quaisquer referências de biblioteca de tipos aninhados.

    • Falha ao emitir o assembly de interoperabilidade primário se você não especificar o contêiner ou o nome do arquivo para dar ao assembly de interoperabilidade primário um nome forte.

    • Falha ao emitir um assembly de interoperabilidade primário se você omitir referências a assemblies dependentes.

    • Falha ao emitir um assembly de interoperabilidade primário se você adicionar referências a assemblies dependentes que não são assemblies de interoperabilidade primários.

  • Criação manual de assemblies de interoperabilidade primários no código-fonte usando uma linguagem compatível com a Common Language Specification (CLS), como C#. Essa abordagem é útil quando uma biblioteca de tipos não está disponível.

Você deve ter um par de chaves criptográficas para assinar o assembly com um nome forte. Para obter detalhes, consulte Criando um par de chaves.

Para gerar um assembly de interoperabilidade primário usando Tlbimp.exe

  1. Na linha de comandos, escreva:

    tlbimp tlbfile /primary /keyfile: nome do arquivo /out: assemblyname

    Neste comando, tlbfile é o arquivo que contém a biblioteca de tipos COM, filename é o nome do contêiner ou arquivo que contém o par de chaves e assemblyname é o nome do assembly a ser assinado com um nome forte.

Os assemblies de interoperabilidade primários podem fazer referência apenas a outros assemblies de interoperabilidade primários. Se o assembly fizer referência a tipos de uma biblioteca de tipos COM de terceiros, você deverá obter um assembly de interoperabilidade primário do editor antes de gerar o assembly de interoperabilidade primário. Se você for o editor, deverá gerar um assembly de interoperabilidade primário para a biblioteca de tipos dependentes antes de gerar o assembly de interoperabilidade primário de referência.

Um assembly de interoperabilidade primário dependente com um número de versão diferente do da biblioteca de tipos original não é detetável quando instalado no diretório atual. Você deve registrar o assembly de interoperabilidade primário dependente no registro do Windows ou usar a opção /reference para ter certeza de que Tlbimp.exe encontra a DLL dependente.

Você também pode encapsular várias versões de uma biblioteca de tipos. Para obter instruções, consulte Como encapsular várias versões de bibliotecas de tipos.

Exemplo

O exemplo a seguir importa a biblioteca LibUtil.tlb de tipos COM e assina o assembly LibUtil.dll com um nome forte usando o arquivo CompanyA.snkde chave . Ao omitir um nome de namespace específico, este exemplo produz o namespace padrão, LibUtil.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /out:LibUtil.dll

Para um nome mais descritivo (usando o VendorName.LibraryName naming guideline), o exemplo a seguir substitui o nome do arquivo assembly padrão e o nome do namespace.

tlbimp LibUtil.tlb /primary /keyfile:CompanyA.snk /namespace:CompanyA.LibUtil /out:CompanyA.LibUtil.dll

O exemplo a seguir importa MyLib.tlb, que faz referência CompanyA.LibUtil.dlla , e assina o assembly CompanyB.MyLib.dll com um nome forte usando o arquivo CompanyB.snkde chave . O namespace, CompanyB.MyLib, substitui o nome do namespace padrão.

tlbimp MyLib.tlb /primary /keyfile:CompanyB.snk /namespace:CompanyB.MyLib /reference:CompanyA.LibUtil.dll /out:CompanyB.MyLib.dll

Consulte também