Tlbexp.exe (Exportador de Biblioteca de Tipos)Tlbexp.exe (Type Library Exporter)

O Exportador da Biblioteca de Tipos gera uma biblioteca de tipos que descreve os tipos definidos em um assembly do Common Language Runtime.The Type Library Exporter generates a type library that describes the types defined in a common language runtime assembly.

Essa ferramenta é instalada automaticamente com o Visual Studio.This tool is automatically installed with Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor para Visual Studio (ou o Prompt de Comando do Visual Studio no Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para obter mais informações, consulte Prompts de Comando.For more information, see Command Prompts.

No prompt de comando, digite o seguinte:At the command prompt, type the following:

SintaxeSyntax

tlbexp assemblyName [options]  

ParâmetrosParameters

ArgumentoArgument DescriçãoDescription
assemblyNameassemblyName O assembly para o qual uma biblioteca de tipos deve ser exportada.The assembly for which to export a type library.
OpçãoOption DescriçãoDescription
/asmpath: directory/asmpath: directory Especifica o local de pesquisa dos assemblies.Specifies the location to search for assemblies. Se usar essa opção, você deverá especificar explicitamente os locais de pesquisa dos assemblies referenciados, incluindo o diretório atual.If you use this option, you must explicitly specify the locations to search for referenced assemblies, including the current directory.

Quando você usa a opção asmpath, o Exportador da Biblioteca de Tipos não procurará um assembly no GAC (cache de assembly global).When you use the asmpath option, the Type Library Exporter will not look for an assembly in the global assembly cache (GAC).
/help/help Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.
/names: filename/names: filename Especifica a capitalização de nomes em uma biblioteca de tipos.Specifies the capitalization of names in a type library. O argumento filename é um arquivo de texto.The filename argument is a text file. Cada linha no arquivo especifica a capitalização de um nome na biblioteca de tipos.Each line in the file specifies the capitalization of one name in the type library.
/nologo/nologo Suprime a exibição do banner de inicialização da Microsoft.Suppresses the Microsoft startup banner display.
/oldnames/oldnames Força Tlbexp.exe a exportar nomes de tipo decorados caso haja um conflito no nome do tipo.Forces Tlbexp.exe to export decorated type names if there is a type name conflict. Esse era o comportamento padrão em versões anteriores ao .NET Framework versão 2.0.Note that this was the default behavior in versions prior to the .NET Framework version 2.0.
/out: file/out: file Especifica o nome do arquivo da biblioteca de tipos a ser gerado.Specifies the name of the type library file to generate. Se você omitir essa opção, Tlbexp.exe gerará uma biblioteca de tipos com o mesmo nome do assembly (o nome do assembly real, que talvez não seja necessariamente igual ao arquivo que contém o assembly) e uma extensão .tlb.If you omit this option, Tlbexp.exe generates a type library with the same name as the assembly (the actual assembly name, which might not necessarily be the same as the file containing the assembly) and a .tlb extension.
/silence: warningnumber/silence: warningnumber Suprime a exibição do aviso especificado.Suppresses the display of the specified warning. Essa opção não pode ser usada com /silent.This option cannot be used with /silent.
/silent/silent Suprime a exibição de mensagens de sucesso.Suppresses the display of success messages. Essa opção não pode ser usada com /silence.This option cannot be used with /silence.
/tlbreference: typelibraryname/tlbreference: typelibraryname Força Tlbexp.exe a resolver explicitamente referências da biblioteca de tipos sem consultar o Registro.Forces Tlbexp.exe to explicitly resolve type library references without consulting the registry. Por exemplo, se o assembly B fizer referência ao assembly A, será possível usar essa opção para fornecer uma referência à biblioteca de tipos explícita, em vez de depender da biblioteca de tipos especificada no Registro.For example, if assembly B references assembly A, you can use this option to provide an explicit type library reference, rather than relying on the type library specified in the registry. Tlbexp.exe realiza uma verificação de versão para garantir que a versão da biblioteca de tipos corresponda à versão do assembly; do contrário, ele gerará um erro.Tlbexp.exe performs a version check to ensure that the type library version matches the assembly version; otherwise, it generates an error.

Observe que a opção tlbreference ainda consulta o Registro nos casos em que o atributo ComImportAttribute é aplicado a uma interface implementada por outro tipo.Note that the tlbreference option still consults the registry in cases where the ComImportAttribute attribute is applied to an interface that is then implemented by another type.
/tlbrefpath: path/tlbrefpath: path Caminho totalmente qualificado para uma biblioteca de tipos referenciada.Fully qualified path to a referenced type library.
/win32/win32 Durante a compilação em um computador 64 bits, esta opção especifica que Tlbexp.exe gera uma biblioteca de tipos 32 bits.When compiling on a 64-bit computer, this option specifies that Tlbexp.exe generates a 32-bit type library.
/win64/win64 Durante a compilação em um computador 32 bits, esta opção especifica que Tlbexp.exe gera uma biblioteca de tipos 64 bits.When compiling on a 32-bit computer, this option specifies that Tlbexp.exe generates a 64-bit type library.
/verbose/verbose Especifica o modo detalhado; exibe uma lista de todos os assemblies referenciados para os quais uma biblioteca de tipos precisa ser gerada.Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated.
/?/? Exibe sintaxe de comando e opções para a ferramenta.Displays command syntax and options for the tool.

Observação

As opções de linha de comando para Tlbexp.exe não diferenciam maiúsculas de minúsculas e podem ser fornecidas em qualquer ordem.The command-line options for Tlbexp.exe are case-insensitive and can be supplied in any order. Você só precisa especificar o suficiente da opção para identificá-la com exclusividade.You only need to specify enough of the option to uniquely identify it. Por exemplo, /n equivale a /nologo e /o: outfile.tlb equivale a /out: outfile.tlb.For example, /n is equivalent to /nologo, and /o: outfile.tlb is equivalent to /out: outfile.tlb.

ComentáriosRemarks

Tlbexp.exe gera uma biblioteca de tipos que contém definições dos tipos definidos no assembly.Tlbexp.exe generates a type library that contains definitions of the types defined in the assembly. Aplicativos como o Visual Basic 6.0 podem usar a biblioteca de tipos gerada na associação com os tipos do .NET definidos no assembly.Applications such as Visual Basic 6.0 can use the generated type library to bind to the .NET types defined in the assembly.

Importante

Não é possível usar Tlbexp.exe para exportar arquivos de metadados do Windows (.winmd).You cannot use Tlbexp.exe to export Windows metadata (.winmd) files. Não há suporte para a exportação de assemblies do Windows Runtime.Exporting Windows Runtime assemblies is not supported.

Todo o assembly é convertido de uma só vez.The entire assembly is converted at once. Não é possível usar Tlbexp.exe para gerar informações de tipo para um subconjunto dos tipos definidos em um assembly.You cannot use Tlbexp.exe to generate type information for a subset of the types defined in an assembly.

Não é possível usar Tlbexp.exe para produzir uma biblioteca de tipos com base em um assembly importado usando o Importador da Biblioteca de Tipos (Tlbimp.exe).You cannot use Tlbexp.exe to produce a type library from an assembly that was imported using the Type Library Importer (Tlbimp.exe). Em vez disso, você deve consultar a biblioteca de tipos original importada com Tlbimp.exe.Instead, you should refer to the original type library that was imported with Tlbimp.exe. É possível exportar uma biblioteca de tipos de um assembly que faz referência a assemblies que foram importados usando-se Tlbimp.exe.You can export a type library from an assembly that references assemblies that were imported using Tlbimp.exe. Consulte a seção de exemplos abaixo.See the examples section below.

Tlbexp.exe coloca bibliotecas de tipos geradas no diretório de trabalho atual ou no diretório especificado para o arquivo de saída.Tlbexp.exe places generated type libraries in the current working directory or the directory specified for the output file. Um único assembly pode fazer várias bibliotecas de tipos serem geradas.A single assembly might cause several type libraries to be generated.

Tlbexp.exe gera uma biblioteca de tipos, mas não a registra.Tlbexp.exe generates a type library but does not register it. Isso difere da Ferramenta de Registro do Assembly (Regasm.exe), que gera e registra uma biblioteca de tipos.This is in contrast to the Assembly Registration tool (Regasm.exe), which both generates and registers a type library. Para gerar e registrar uma biblioteca de tipos com COM, use Regasm.exe.To generate and register a type library with COM, use Regasm.exe.

Se você não especificar /win32 ou a opção /win64, Tlbexp.exe gerará uma biblioteca de tipos 32 ou 64 bits que corresponde ao tipo do computador no qual você está executando a compilação (computador 32 bits ou 64 bits).If you do not specify either the /win32 or /win64 option, Tlbexp.exe generates a 32-bit or 64-bit type library that corresponds to the type of computer on which you are performing the compilation (32-bit or 64-bit computer). Para fins de compilação cruzada, é possível usar a opção /win64 em um computador 32 bits para gerar uma biblioteca de tipos 64 bits e usar a opção /win32 em um computador 64 bits para gerar uma biblioteca de tipos 32 bits.For cross-compilation purposes, you can use the /win64 option on a 32-bit computer to generate a 64-bit type library and you can use the /win32 option on a 64-bit computer to generate a 32-bit type library. Em bibliotecas de tipos 32 bits, o valor SYSKIND é definido como SYS_WIN32.In 32-bit type libraries, the SYSKIND value is set to SYS_WIN32. Em bibliotecas de tipos 64 bits, o valor SYSKIND é definido como SYS_WIN64.In 64-bit type libraries, the SYSKIND value is set to SYS_WIN64. Todas as transformações de tipo de dados (por exemplo, tipos de dados do tamanho de ponteiro como, por exemplo, IntPtr e UIntPtr) são convertidas adequadamente.All data type transformations (for example, pointer-sized data types such as IntPtr and UIntPtr) are converted appropriately.

Se você usar o atributo MarshalAsAttribute para especificar um valor SafeArraySubType de VT_UNKOWN ou VT_DISPATCH, Tlbexp.exe ignorará qualquer uso subsequente do campo SafeArrayUserDefinedSubType.If you use the MarshalAsAttribute attribute to specify a SafeArraySubType value of VT_UNKOWN or VT_DISPATCH, Tlbexp.exe ignores any subsequent use of the SafeArrayUserDefinedSubType field. Por exemplo, dadas as seguintes assinaturas:For example, given the following signatures:

[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}  
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}  

a seguinte biblioteca de tipos é gerada:the following type library is generated:

[id(0x60020004)]  
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);  
[id(0x60020005)]  
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);  

Tlbexp.exe ignora o campo SafeArrayUserDefinedSubType.Note that Tlbexp.exe ignores the SafeArrayUserDefinedSubType field.

Como as bibliotecas de tipos não podem acomodar todas as informações encontradas em assemblies, Tlbexp.exe pode descartar alguns dados durante o processo de exportação.Because type libraries cannot accommodate all the information found in assemblies, Tlbexp.exe might discard some data during the export process. Para ver uma explicação do processo de transformação e a identificação da origem de cada informação emitida para uma biblioteca de tipos, consulte Resumo da Conversão do Assembly em Biblioteca de Tipos.For an explanation of the transformation process and identification of the source of each piece of information emitted to a type library, see the Assembly to Type Library Conversion Summary.

O Exportador da Biblioteca de Tipos exporta métodos com parâmetros TypedReference como VARIANT, mesmo que o objeto TypedReference não tenha significado no código não gerenciado.Note that the Type Library Exporter exports methods that have TypedReference parameters as VARIANT, even though the TypedReference object has no meaning in unmanaged code. Quando você exportar métodos com parâmetros TypedReference, o Exportador da Biblioteca de Tipos não gerará um aviso ou um erro, e o código não gerenciado que usa a biblioteca de tipos resultante não será executado corretamente.When you export methods that have TypedReference parameters, the Type Library Exporter will not generate a warning or error and unmanaged code that uses the resulting type library will not run properly.

O Exportador da Biblioteca de Tipos é compatível com o Microsoft Windows 2000 e posteriores.The Type Library Exporter is supported on Microsoft Windows 2000 and later.

ExemplosExamples

O comando a seguir gera uma biblioteca de tipos com o mesmo nome do assembly encontrado em myTest.dll.The following command generates a type library with the same name as the assembly found in myTest.dll.

tlbexp myTest.dll  

O comando a seguir gera uma biblioteca de tipos com o nome clipper.tlb.The following command generates a type library with the name clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

O exemplo a seguir ilustra o uso de Tlbexp.exe para exportar uma biblioteca de tipos de um assembly que faz referência a assemblies que foram importados usando-se Tlbimp.exe.The following example illustrates using Tlbexp.exe to export a type library from an assembly that references assemblies that were imported using Tlbimp.exe.

Primeiro use Tlbimp.exe para importar a biblioteca de tipos myLib.tlb e salve-a como myLib.dll.First use Tlbimp.exe to import the type library myLib.tlb and save it as myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

O comando a seguir usa o compilador do C# para compilar o Sample.dll, que faz referência a myLib.dll criado no exemplo anterior.The following command uses the C# compiler to compile the Sample.dll, which references myLib.dll created in the previous example.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll  

O comando a seguir gera uma biblioteca de tipos para Sample.dll que faz referência a myLib.dll.The following command generates a type library for Sample.dll that references myLib.dll.

tlbexp Sample.dll  

Consulte tambémSee also