Partilhar via


Tlbimp.exe (Importador de Biblioteca de Tipos)

O Importador de Biblioteca de Tipos converte as definições de tipo encontradas em uma biblioteca de tipos COM em definições equivalentes em um assembly de Common Language Runtime. A saída de Tlbimp.exe é um arquivo binário (um assembly) que contém metadados de tempo de execução para os tipos definidos na biblioteca de tipos original. Você pode examinar esse arquivo com ferramentas como Ildasm.exe.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

Na linha de comandos, escreva o seguinte:

Sintaxe

tlbimp tlbFile [options]  

Parâmetros

Argumento Description
tlbFile O nome de qualquer arquivo que contenha uma biblioteca de tipos COM.
Opção Description
/asmversion: versionnumber Especifica o número da versão do assembly a ser produzido. Especifique versionnumber no formato major.minor.build.revision.
/empresa: companyinformation Adiciona informações da empresa ao assembly de saída.
/Direitos de autor: copyrightinformation Adiciona informações de direitos autorais ao assembly de saída. Essas informações podem ser exibidas na caixa de diálogo Propriedades do arquivo para o assembly.
/sinal de atraso Especifica para Tlbimp.exe assinar o assembly resultante com um nome forte usando assinatura atrasada. Você deve especificar essa opção com a opção /keycontainer:, /keyfile:, ou /publickey: . Para obter mais informações sobre o processo de assinatura atrasado, consulte Atrasar a assinatura de um assembly.
/Ajuda Exibe a sintaxe do comando e as opções da ferramenta.
/keycontainer: containername Assina o assembly resultante com um nome forte usando o par de chaves pública/privada encontrado no contêiner de chave especificado por containername.
/keyfile: nome do arquivo Assina o assembly resultante com um nome forte usando o par de chaves público/privado oficial do editor encontrado no nome do arquivo.
/máquina: machinetype Cria um assembly destinado ao tipo de máquina especificado (microprocessador). Tipos de máquinas suportados: x86, x64, Itanium e Agnostic.
/namespace: namespace Especifica o namespace no qual produzir o assembly.
/noclassmembers Impede que Tlbimp.exe adicione membros às classes. Isso evita um potencial TypeLoadException.
/nologo Suprime a exibição do banner de inicialização da Microsoft.
/out: nome do ficheiro Especifica o nome do arquivo de saída, assembly e namespace no qual escrever as definições de metadados. A opção /out não terá efeito no namespace do assembly se a biblioteca de tipos especificar o atributo personalizado IDL (Interface Definition Language) que controla explicitamente o namespace do assembly. Se você não especificar essa opção, Tlbimp.exe gravará os metadados em um arquivo com o mesmo nome da biblioteca de tipos real definida no arquivo de entrada e atribuirá a ele uma extensão .dll. Se o arquivo de saída for o mesmo nome do arquivo de entrada, a ferramenta gerará um erro para impedir a substituição da biblioteca de tipos.
/primário Produz um assembly de interoperabilidade primário para a biblioteca de tipos especificada. As informações são adicionadas ao assembly indicando que o editor da biblioteca de tipos produziu o assembly. Ao especificar um assembly de interoperabilidade primário, você diferencia o assembly de um editor de quaisquer outros assemblies criados a partir da biblioteca de tipos usando Tlbimp.exe. Você só deve usar a opção /primary se for o editor da biblioteca de tipos que está importando com Tlbimp.exe. Observe que você deve assinar um assembly de interoperabilidade primário com um nome forte. Para obter mais informações, consulte Assemblies de interoperabilidade primários.
/produto: productinformation Adiciona informações do produto ao assembly de saída. Essas informações podem ser exibidas na caixa de diálogo Propriedades do arquivo para o assembly.
/ProductVersion: productversioninformation Adiciona informações de versão do produto ao assembly de saída. Não há restrições de formato. Essas informações podem ser exibidas na caixa de diálogo Propriedades do arquivo para o assembly.
/publickey: nome do ficheiro Especifica o arquivo que contém a chave pública a ser usada para assinar o assembly resultante. Se você especificar a opção /keyfile: ou /keycontainer: em vez de /publickey:, Tlbimp.exe gerará a chave pública a partir do par de chaves pública/privada fornecido com /keyfile: ou /keycontainer:. A opção /publickey: suporta cenários de chave de teste e assinatura de atraso. O arquivo está no formato gerado por Sn.exe. Para obter mais informações, consulte a opção -p de Sn.exe em Strong Name Tool (Sn.exe).
/reference: nome do ficheiro Especifica o arquivo de assembly a ser usado para resolver referências a tipos definidos fora da biblioteca de tipos atual. Se você não especificar a opção /reference , Tlbimp.exe importará automaticamente recursivamente qualquer biblioteca de tipos externa à qual a biblioteca de tipos que está sendo importada faça referência. Se você especificar a opção /reference , a ferramenta tentará resolver tipos externos nos assemblies referenciados antes de importar outras bibliotecas de tipos.
/silêncio: warningnumber Suprime a exibição do aviso especificado. Esta opção não pode ser usada com /silent.
/silent Suprime a exibição de mensagens de sucesso. Esta opção não pode ser usada com /silence.
/strictref Não importa uma biblioteca de tipos se a ferramenta não puder resolver todas as referências dentro do assembly atual, os assemblies especificados com a opção /reference ou assemblies de interoperabilidade primária registrados (PIAs).
/strictref:nopia O mesmo que /strictref, mas ignora PIAs.
/sysarray Especifica a ferramenta para importar um estilo COM SafeArray como um tipo gerenciado Array .
/tlbreference: nome do arquivo Especifica o arquivo de biblioteca de tipos a ser usado para resolver referências de biblioteca de tipos sem consultar o Registro.

Observe que essa opção não carregará alguns formatos de biblioteca de tipos mais antigos. No entanto, você ainda pode carregar formatos de biblioteca de tipos mais antigos implicitamente através do registro ou diretório atual.
/marca registrada: trademarkinformation Adiciona informações de marca comercial ao assembly de saída. Essas informações podem ser exibidas na caixa de diálogo Propriedades do arquivo para o assembly.
/transform: transformname Transforma metadados conforme especificado pelo parâmetro transformname .

Especifique dispret para o parâmetro transformname para transformar parâmetros [out, retval] de métodos em interfaces somente dispatch (dispinterfaces) em valores de retorno.

Para obter mais informações sobre essa opção, consulte os exemplos mais adiante neste tópico.
/inseguro Produz interfaces sem verificações de segurança do .NET Framework. Chamar um método que é exposto dessa maneira pode representar um risco de segurança. Você não deve usar esta opção a menos que esteja ciente dos riscos de expor tal código.
/verbose Especifica o modo detalhado; Exibe informações adicionais sobre a biblioteca de tipos importados.
/VariantBoolFieldToBool Converte VARIANT_BOOL campos em estruturas em Boolean.
/? Exibe a sintaxe do comando e as opções da ferramenta.

Nota

As opções de linha de comando para Tlbimp.exe não diferenciam maiúsculas de minúsculas e podem ser fornecidas em qualquer ordem. Você só precisa especificar o suficiente da opção para identificá-la exclusivamente. Portanto, /n é equivalente a /nologo e /ou: outfile.dll é equivalente a /out: outfile.dll.

Observações

Tlbimp.exe executa conversões em uma biblioteca de tipos inteira de uma só vez. Não é possível usar a ferramenta para gerar informações de tipo para um subconjunto dos tipos definidos em uma única biblioteca de tipos.

Muitas vezes, é útil ou necessário ser capaz de atribuir nomes fortes a montagens. Portanto, Tlbimp.exe inclui opções para fornecer as informações necessárias para gerar assemblies fortemente nomeados. As opções /keyfile: e /keycontainer: assinam assemblies com nomes fortes. Portanto, é lógico fornecer apenas uma dessas opções de cada vez.

Você pode especificar vários assemblies de referência usando a opção /reference várias vezes.

Devido à maneira como o Tlbimp.exe gera assemblies, não é possível redirecionar um assembly para uma versão diferente mscorlib . Por exemplo, se você deseja gerar um assembly destinado ao .NET Framework 2.0, o Tlbimp.exe fornecido com o SDK do .NET Framework 2.0/3.0/3.5 deve ser usado. Para direcionar o .NET Framework 4.x, o Tlbimp.exe fornecido com um SDK do .NET Framework 4.x deve ser usado.

Opcionalmente, um ID de recurso pode ser anexado a um arquivo de biblioteca de tipos ao importar uma biblioteca de tipos de um módulo que contém várias bibliotecas de tipos. Tlbimp.exe é capaz de localizar esse arquivo somente se ele estiver no diretório atual ou se você especificar o caminho completo. Veja o exemplo mais adiante neste tópico.

Exemplos

O comando a seguir gera um assembly com o mesmo nome da biblioteca de tipos encontrada em myTest.tlb e com a extensão .dll.

tlbimp myTest.tlb

O comando a seguir gera um assembly com o nome myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

O comando a seguir gera um assembly com o mesmo nome da biblioteca de tipos especificada por MyModule.dll\1 e com a extensão .dll. MyModule.dll\1 deve estar localizado no diretório atual.

tlbimp MyModule.dll\1  

O comando a seguir gera um assembly com o nome myTestLib.dll da biblioteca de tipos TestLib.dll. A opção /transform:dispret transforma quaisquer parâmetros [out, retval] de métodos em dispinterfaces na biblioteca de tipos em valores de retorno na biblioteca gerenciada.

tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll  

A biblioteca TestLib.dllde tipos , no exemplo anterior, inclui um método dispinterface chamado SomeMethod que retorna void e tem um parâmetro [out, retval]. O código a seguir é a assinatura do método de biblioteca de tipos de entrada para SomeMethod in TestLib.dll.

void SomeMethod([out, retval] VARIANT_BOOL*);  

Especificar a opção /transform:dispret faz com que Tlbimp.exe transforme o [out, retval] parâmetro de em um bool valor de SomeMethod retorno. A seguir está a assinatura de método para a qual Tlbimp.exe produz SomeMethod na biblioteca myTestLib.dll gerenciada quando a opção /transform:dispret é especificada.

bool SomeMethod();  

Se você usar Tlbimp.exe para produzir uma biblioteca gerenciada sem TestLib.dll especificar o /transform:dispret, a ferramenta produzirá a seguinte assinatura de método para SomeMethod na biblioteca myTestLib.dllgerenciada.

void SomeMethod(out bool x);  

Consulte também