Tlbimp.exe (Importador de Biblioteca de Tipos)
O Importador da Biblioteca de Tipos converte as definições de tipo encontradas dentro de uma biblioteca de tipos COM em definições equivalentes em um assembly do Common Language Runtime. A saída de Tlbimp.exe é um arquivo binário (um assembly) que contém os metadados do runtime para os tipos definidos na biblioteca de tipos original. É possível examinar esse arquivo com ferramentas como Ildasm.exe.
Essa ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor do Visual Studio ou o PowerShell do Desenvolvedor do Visual Studio.
No prompt de comando, digite o seguinte:
Sintaxe
tlbimp tlbFile [options]
Parâmetros
Argumento | Descrição |
---|---|
tlbFile | O nome de qualquer arquivo que contenha uma biblioteca de tipos COM. |
Opção | Descrição |
---|---|
/asmversion: número da versão | Especifica o número de versão do assembly a ser produzido. Especifique versionnumber no formato principal.secundária.build.revisão. |
/companhia: companyinformation |
Adiciona informações da empresa ao assembly de saída. |
/direitos autorais: copyrightinformation |
Adiciona informações de direito autoral ao assembly de saída. Essas informações podem ser exibidas na caixa de diálogo Propriedades de arquivo do assembly. |
/delaysign | Especifica Tlbimp.exe para assinar o assembly resultante com um nome forte usando a assinatura com atraso. Você deve especificar essa opção com a opção /keycontainer:, /keyfile: ou /publickey:. Para obter mais informações sobre o processo de assinatura com atraso, consulte Assinatura com Atraso de um Assembly. |
/help | Exibe sintaxe de comando e opções para a ferramenta. |
/keycontainer: nome do contêiner | 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ública/privada oficial do editor encontrado em filename. |
/máquina: machinetype |
Cria um assembly com o tipo de computador especificado como alvo (microprocessador). Tipos de computador compatíveis: x86, x64, Itanium e Agnostic. |
/namespace: namespace | Especifica o namespace no qual produzir o assembly. |
/noclassmembers | Impede que Tlbimp.exe adicione membros a classes. Isso evita um TypeLoadExceptionem potencial. |
/nologo | Suprime a exibição do banner de inicialização da Microsoft. |
/out: nome do arquivo | Especifica o nome do arquivo de saída, o assembly e o namespace no qual gravar as definições de metadados. A opção /out não afetará o namespace do assembly se a biblioteca de tipos especificar o atributo personalizado de linguagem IDL 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 definido no arquivo de entrada e o atribuirá a uma extensão .dll. Se o arquivo de saída tiver o mesmo nome do arquivo de entrada, a ferramenta gerará um erro para evitar a substituição da biblioteca de tipos. |
/primary | Produz um assembly de interoperabilidade primário para a biblioteca de tipos especificada. As informações são adicionadas ao assembly, o que indica que o editor da biblioteca de tipos produziu o assembly. Especificando um assembly de interoperabilidade primária, você diferencia o assembly de um editor de todos os outros assemblies criados na biblioteca de tipos usando Tlbimp.exe. Use a opção /primary somente se você for o editor da biblioteca de tipos que está sendo importado com Tlbimp.exe. 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 de arquivo do assembly. |
/versão do produto: productversioninformation |
Adiciona informações da versão ao assembly de saída. Não há restrições de formato. Essas informações podem ser exibidas na caixa de diálogo Propriedades de arquivo do assembly. |
/publickey: nome do arquivo | Especifica o arquivo que contém a chave pública a ser usada na assinatura do assembly resultante. Se você especificar a opção /keyfile: ou /keycontainer: em vez de /publickey:, Tlbimp.exe gerará a chave pública do par de chaves pública/privada fornecido com /keyfile: ou /keycontainer:. A opção /publickey: dá suporte aos cenários de chave de teste e de assinatura com atraso. O arquivo está no formato gerado por Sn.exe. Para obter mais informações, consulte a opção -p de Sn.exe em Ferramenta Nome Forte (Sn.exe). |
/reference: nome do arquivo | Especifica o arquivo do assembly a ser usado para resolver referências para tipos definidos fora da biblioteca de tipos atual. Se você não especificar a opção /reference, Tlbimp.exe importará recursivamente de maneira automática qualquer biblioteca de tipos externa a que a biblioteca de tipos está fazendo 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. Essa opção não pode ser usada com /silent. |
/silent | Suprime a exibição de mensagens de sucesso. Essa opção não pode ser usada com /silence. |
/strictref | Não importará 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 PIAs (assemblies de interoperabilidade primários). |
/strictref:nopia | Igual a /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 bibliotecas de tipos a ser usado para resolver referências da biblioteca de tipos sem consultar o Registro. Essa opção não carregará alguns formatos da biblioteca de tipos anteriores. No entanto, ainda é possível carregar formatos da biblioteca de tipos anteriores implicitamente por meio do Registro ou diretório atual. |
/marca registrada: trademarkinformation |
Adiciona informações de marca ao assembly de saída. Essas informações podem ser exibidas na caixa de diálogo Propriedades de arquivo do assembly. |
/transform: nome da transformação | 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 apenas de expedição (dispinterfaces) em valores retornados. Para obter mais informações sobre essa opção, consulte os exemplos mais à frente neste tópico. |
/unsafe | Produz interfaces sem verificações de segurança do .NET Framework. A chamada de um método exposto dessa maneira pode oferecer um risco à segurança. Você não deve usar essa opção, a menos que saiba os riscos de expor esse código. |
/verbose | Especifica o modo detalhado; exibe informações adicionais sobre a biblioteca de tipos importada. |
/VariantBoolFieldToBool | Converte campos VARIANT_BOOL em estruturas para Boolean. |
/? | Exibe sintaxe de comando e opções para a ferramenta. |
Observação
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 com exclusividade. Portanto, /n é equivalente a /nologo e /ou: outfile.dll é equivalente a /out: outfile.dll.
Comentários
Tlbimp.exe realiza conversões em uma biblioteca de tipos ao mesmo tempo. Não é possível usar a ferramenta para gerar informações de tipo para um subconjunto dos tipos definidos dentro de uma única biblioteca de tipos.
Costuma ser útil ou necessário atribuir nomes fortes a assemblies. Por isso, Tlbimp.exe inclui opções para fornecer as informações necessárias à geração dos assemblies fortemente nomeados. As opções /keyfile: e /keycontainer: assinam assemblies com nomes fortes. Por isso, é lógico fornecer apenas uma dessas opções por vez.
É possível especificar vários assemblies de referência usando a opção /reference várias vezes.
Devido à maneira na qual Tlbimp.exe gera assemblies, não é possível redirecionar um assembly para uma versão mscorlib
diferente. Por exemplo, se desejar gerar um assembly que direciona o .NET Framework 2.0, o Tlbimp.exe que acompanha o SDK do .NET Framework 2.0/3.0/3.5 deverá ser usado. Para direcionar o .NET Framework 4.x, o Tlbimp.exe que acompanha um SDK do .NET Framework 4.x deverá ser usado.
Uma ID de recurso pode ser acrescentada a um arquivo da biblioteca de tipos durante a importação de uma biblioteca de tipos de um módulo que contém várias bibliotecas de tipos. Tlbimp.exe só poderá localizar esse arquivo se estiver no diretório atual ou se você especificar o caminho completo. Consulte o exemplo mais à frente 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 no diretório atual.
tlbimp MyModule.dll\1
O comando a seguir gera um assembly com o nome myTestLib.dll
para a biblioteca de tipos TestLib.dll
. A opção /transform:dispret transforma todos os parâmetros [out, retval] de métodos em dispinterfaces na biblioteca de tipos em valores retornados na biblioteca gerenciada.
tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll
A biblioteca de tipos TestLib.dll
, no exemplo anterior, inclui um método dispinterface chamado SomeMethod
que retorna nulo 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
em TestLib.dll
.
void SomeMethod([out, retval] VARIANT_BOOL*);
Especificar a opção /transform:dispret faz Tlbimp.exe transformar o parâmetro [out, retval]
de SomeMethod
em um valor retornado bool
. Veja a seguir a assinatura do método produzida por Tlbimp.exe para SomeMethod
na biblioteca gerenciada myTestLib.dll
quando a opção /transform:dispret é especificada.
bool SomeMethod();
Se você usar Tlbimp.exe para produzir uma biblioteca gerenciada para TestLib.dll
sem especificar /transform:dispret, a ferramenta produzirá a assinatura do método a seguir para SomeMethod
na biblioteca gerenciada myTestLib.dll
.
void SomeMethod(out bool x);
Confira também
- Ferramentas
- Tlbexp.exe (Exportador de Biblioteca de Tipos)
- Importando uma biblioteca de tipos como um assembly
- Resumo da conversão de bibliotecas de tipos em assemblies
- Ildasm.exe (IL Disassembler)
- Sn.exe (Ferramenta Nome Forte)
- Assembly de nome forte
- Atributos para importar bibliotecas de tipos para assemblies de interoperabilidade
- Shells de linha de comando do desenvolvedor