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.dll
de 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.dll
gerenciada.
void SomeMethod(out bool x);
Consulte também
- Ferramentas
- Tlbexp.exe (Exportador de Biblioteca de Tipos)
- Importando uma biblioteca de tipos como um assembly
- Resumo de conversão de biblioteca de tipos para montagem
- Ildasm.exe (IL Desmontador)
- Sn.exe (Ferramenta de nome forte)
- Assembléias com nomes fortes
- Atributos para importar bibliotecas de tipos para assemblies de interoperabilidade
- Shells de linha de comando do desenvolvedor