TlbImp.exe (Importador de la biblioteca de tipos)Tlbimp.exe (Type Library Importer)

El Importador de la biblioteca de tipos convierte las definiciones de tipos encontradas en una biblioteca de tipos COM en las definiciones equivalentes en un ensamblado de Common Language Runtime.The Type Library Importer converts the type definitions found within a COM type library into equivalent definitions in a common language runtime assembly. El resultado de Tlbimp.exe es un archivo binario (un ensamblado) que contiene los metadatos en tiempo de ejecución para los tipos definidos en la biblioteca de tipos original.The output of Tlbimp.exe is a binary file (an assembly) that contains runtime metadata for the types defined within the original type library. Este archivo se puede examinar con herramientas como Ildasm.exe.You can examine this file with tools such as Ildasm.exe.

Esta herramienta se instala automáticamente con Visual Studio.This tool is automatically installed with Visual Studio. Para ejecutar la herramienta, use Símbolo del sistema para desarrolladores de Visual Studio (o Símbolo del sistema de Visual Studio en Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para más información, consulte Símbolos del sistema.For more information, see Command Prompts.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

SintaxisSyntax

tlbimp tlbFile [options]  

ParámetrosParameters

ArgumentoArgument DESCRIPCIÓNDescription
tlbFiletlbFile Nombre de cualquier archivo que contenga una biblioteca de tipos COM.The name of any file that contains a COM type library.
OpciónOption DESCRIPCIÓNDescription
/asmversion: númeroVersión/asmversion: versionnumber Especifica el número de versión del ensamblado que se genera.Specifies the version number of the assembly to produce. Especifique númeroVersión con el formato principal.secundaria.compilación.revisión.Specify versionnumber in the format major.minor.build.revision.
/company: companyinformation/company: companyinformation Agrega información de la compañía al ensamblado de salida.Adds company information to the output assembly.
/copyright: copyrightinformation/copyright: copyrightinformation Agrega información de copyright al ensamblado de salida.Adds copyright information to the output assembly. Esta información se puede ver en el cuadro de diálogo Propiedades del archivo del ensamblado.This information can be viewed in the File Properties dialog box for the assembly.
/delaysign/delaysign Indica a la herramienta Tlbimp.exe que firme el ensamblado resultante con un nombre seguro mediante la firma retardada.Specifies to Tlbimp.exe to sign the resulting assembly with a strong name using delayed signing. Esta opción se debe especificar con las opciones /keycontainer: , /keyfile: o /publickey: .You must specify this option with either the /keycontainer:, /keyfile:, or /publickey: option. Para obtener más información sobre el proceso de firma retardada, vea Retrasar la firma de un ensamblado.For more information on the delayed signing process, see Delay Signing an Assembly.
/help/help Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.
/keycontainer: nombreContenedor/keycontainer: containername Firma el ensamblado resultante con un nombre seguro utilizando el par de claves pública y privada que se encuentra en el contenedor de claves especificado mediante nombreContenedor.Signs the resulting assembly with a strong name using the public/private key pair found in the key container specified by containername.
/keyfile: nombreArchivo/keyfile: filename Firma el ensamblado resultante con un nombre seguro utilizando el par de claves pública y privada oficial del editor que se encuentra en nombreArchivo.Signs the resulting assembly with a strong name using the publisher's official public/private key pair found in filename.
/machine: machinetype/machine: machinetype Crea un ensamblado cuyo destino es el tipo de equipo especificado (microprocesador).Creates an assembly that targets the specified machine type (microprocessor). Tipos de equipo compatibles: x86, x64, Itanium y Agnostic.Supported machine types: x86, x64, Itanium, and Agnostic.
/namespace: espacioNombres/namespace: namespace Especifica el espacio de nombres en que se genera el ensamblado.Specifies the namespace in which to produce the assembly.
/noclassmembers/noclassmembers Evita que Tlbimp.exe agregue miembros a las clases.Prevents Tlbimp.exe from adding members to classes. Esto evita una posible excepción TypeLoadException.This avoids a potential TypeLoadException.
/nologo/nologo Suprime la presentación de la portada de inicio de Microsoft.Suppresses the Microsoft startup banner display.
/out: nombreArchivo/out: filename Especifica el nombre del archivo de salida, el ensamblado y el espacio de nombres en el que se escriben las definiciones de los metadatos.Specifies the name of the output file, assembly, and namespace in which to write the metadata definitions. La opción /out no afecta al espacio de nombres del ensamblado si la biblioteca de tipos especifica el atributo personalizado de lenguaje de definición de interfaz (IDL) que controla explícitamente el espacio de nombres del ensamblado.The /out option has no effect on the assembly's namespace if the type library specifies the Interface Definition Language (IDL) custom attribute that explicitly controls the assembly's namespace. Si no se especifica esta opción, Tlbimp.exe escribe los metadatos en un archivo con el mismo nombre que la biblioteca de tipos real definida en el archivo de entrada y le asigna una extensión .dll.If you do not specify this option, Tlbimp.exe writes the metadata to a file with the same name as the actual type library defined within the input file and assigns it a .dll extension. Si el archivo de salida tiene el mismo nombre que el archivo de entrada, la herramienta genera un error para evitar que se sobrescriba la biblioteca de tipos.If the output file is the same name as the input file, the tool generates an error to prevent overwriting the type library.
/primary/primary Genera un ensamblado de interoperabilidad primario para la biblioteca de tipos especificada.Produces a primary interop assembly for the specified type library. La información se agrega al ensamblado indicando que se ha generado con el editor de la biblioteca de tipos.Information is added to the assembly indicating that the publisher of the type library produced the assembly. Al especificar un ensamblado de interoperabilidad primario, es posible diferenciar el ensamblado de un editor de otros ensamblados creados desde la biblioteca de tipos mediante Tlbimp.exe.By specifying a primary interop assembly, you differentiate a publisher's assembly from any other assemblies that are created from the type library using Tlbimp.exe. Solo debería utilizar la opción /primary si es el editor de la biblioteca de tipos que va a importar con Tlbimp.exe.You should only use the /primary option if you are the publisher of the type library that you are importing with Tlbimp.exe. Tenga en cuenta que debe firmar un ensamblado de interoperabilidad primario con un nombre seguro.Note that you must sign a primary interop assembly with a strong name. Para obtener más información, vea Ensamblados de interoperabilidad primarios.For more information, see Primary Interop Assemblies.
/product: productinformation/product: productinformation Agrega información del producto al ensamblado de salida.Adds product information to the output assembly. Esta información se puede ver en el cuadro de diálogo Propiedades del archivo del ensamblado.This information can be viewed in the File Properties dialog box for the assembly.
/productversion: productversioninformation/productversion: productversioninformation Agrega información de la versión al ensamblado de salida.Adds product version information to the output assembly. No hay restricciones de formato.There are no format restrictions. Esta información se puede ver en el cuadro de diálogo Propiedades del archivo del ensamblado.This information can be viewed in the File Properties dialog box for the assembly.
/publickey: nombreArchivo/publickey: filename Especifica el archivo que contiene la clave pública que se va a utilizar para firmar el ensamblado resultante.Specifies the file containing the public key to use to sign the resulting assembly. Si se especifica las opciones /keyfile: o /keycontainer: en lugar de /publickey: , Tlbimp.exe genera la clave pública a partir del par de claves pública y privada suministrado por /keyfile: o /keycontainer: .If you specify the /keyfile: or /keycontainer: option instead of /publickey:, Tlbimp.exe generates the public key from the public/private key pair supplied with /keyfile: or /keycontainer:. La opción /publickey: admite los escenarios de clave de prueba y de firma retardada.The /publickey: option supports test key and delay signing scenarios. El archivo tiene el formato generado por Sn.exe.The file is in the format generated by Sn.exe. Para obtener más información, vea la opción -p de Sn.exe en la herramienta Nombre seguro (Sn.exe).For more information, see the -p option of Sn.exe in Strong Name Tool (Sn.exe).
/reference: nombreArchivo/reference: filename Especifica el archivo de ensamblado que se utiliza para resolver referencias en tipos definidos fuera de la biblioteca de tipos actual.Specifies the assembly file to use to resolve references to types defined outside the current type library. Si no se especifica la opción /reference, Tlbimp.exe importa de forma automática y recursiva todas las bibliotecas de tipos externas a la que se haga referencia en la biblioteca de tipos que se va a importar.If you do not specify the /reference option, Tlbimp.exe automatically recursively imports any external type library that the type library being imported references. Si especifica la opción /reference, la herramienta intenta resolver los tipos externos en los ensamblados a los que se hace referencia antes de importar otras bibliotecas de tipos.If you specify the /reference option, the tool attempts to resolve external types in the referenced assemblies before it imports other type libraries.
/silence: warningnumber/silence: warningnumber Suprime la presentación de la advertencia especificada.Suppresses the display of the specified warning. Esta opción no se puede utilizar con la opción /silent.This option cannot be used with /silent.
/silent/silent Suprime la presentación de mensajes de aprobación.Suppresses the display of success messages. Esta opción no se puede utilizar con la opción /silence.This option cannot be used with /silence.
/strictref/strictref No importa una biblioteca de tipos si la herramienta no puede resolver todas las referencias dentro del ensamblado actual, los ensamblados especificados con la opción /reference o los ensamblados de interoperabilidad primarios (PIA) registrados.Does not import a type library if the tool cannot resolve all references within the current assembly, the assemblies specified with the /reference option, or registered primary interop assemblies (PIAs).
/strictref:nopia/strictref:nopia Igual que /strictref, pero omite los PIA.Same as /strictref, but ignores PIAs.
/sysarray/sysarray Indica a la herramienta que importe una matriz SafeArray de estilos COM como un tipo Array administrado.Specifies to the tool to import a COM style SafeArray as a managed Array type.
/tlbreference: nombreArchivo/tlbreference: filename Especifica el archivo de la biblioteca de tipos que se debe utilizar para resolver las referencias de la biblioteca de tipos sin consultar el Registro.Specifies the type library file to use to resolve type library references without consulting the registry.

Observe que esta opción no cargará algunos de los formatos de la biblioteca de tipos más antiguos.Note that this option will not load some older type library formats. Sin embargo, todavía puede cargarlos de forma implícita a través del Registro o del directorio actual.However, you can still load older type library formats implicitly through the registry or current directory.
/trademark: trademarkinformation/trademark: trademarkinformation Agrega información de marca comercial al ensamblado de salida.Adds trademark information to the output assembly. Esta información se puede ver en el cuadro de diálogo Propiedades del archivo del ensamblado.This information can be viewed in the File Properties dialog box for the assembly.
/transform: nombreTransformación/transform: transformname Transforma los metadatos tal y como especifica el parámetro nombreTransformación.Transforms metadata as specified by the transformname parameter.

Especifique dispret para que el parámetro nombreTransformación transforme los parámetros [out, retval] de los métodos de las interfaces de solo envío (interfaces dispinterface) en valores devueltos.Specify dispret for the transformname parameter to transform [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) into return values.

Para obtener más información sobre esta opción, vea los ejemplos que se muestran más adelante en este tema.For more information about this option, see the examples later in this topic.
/unsafe/unsafe Genera interfaces sin comprobaciones de seguridad de .NET Framework.Produces interfaces without .NET Framework security checks. La llamada a un método que se expone de esta forma puede poner en riesgo la seguridad.Calling a method that is exposed in this way might pose a security risk. Esta opción no se debe utilizar a no ser que se conozcan los riesgos que supone exponer este código.You should not use this option unless you are aware of the risks of exposing such code.
/verbose/verbose Especifica el modo detallado; muestra información adicional sobre la biblioteca de tipos importada.Specifies verbose mode; displays additional information about the imported type library.
/VariantBoolFieldToBool/VariantBoolFieldToBool Convierte los campos VARIANT_BOOL de las estructuras en Boolean.Converts VARIANT_BOOL fields in structures to Boolean.
/?/? Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.

Nota

Las opciones de la línea de comandos de Tlbimp.exe no distinguen entre mayúsculas y minúsculas, y se pueden proporcionar en cualquier orden.The command-line options for Tlbimp.exe are case-insensitive and can be supplied in any order. Por otra parte, basta con especificar parte de la opción de forma que se identifique de manera inequívoca.You only need to specify enough of the option to uniquely identify it. Por lo tanto, /n equivale a /nologo y /ou: outfile.dll equivale a /out: outfile.dll.Therefore, /n is equivalent to /nologo and /ou: outfile.dll is equivalent to /out: outfile.dll.

ComentariosRemarks

Tlbimp.exe realiza las conversiones de una biblioteca completa de tipos de una vez.Tlbimp.exe performs conversions on an entire type library at one time. No se puede utilizar esta herramienta para generar información de tipos para un subconjunto de los tipos definidos en una biblioteca de tipos sencilla.You cannot use the tool to generate type information for a subset of the types defined within a single type library.

Hay veces que resulta útil o es necesario poder asignar nombres seguros a los ensamblados.It is often useful or necessary to be able to assign strong names to assemblies. Por consiguiente, Tlbimp.exe incluye opciones que proporcionan la información necesaria para generar ensamblados con nombre seguro.Therefore, Tlbimp.exe includes options for supplying the information necessary to generate strongly named assemblies. Las dos opciones /keyfile: y /keycontainer: firman los ensamblados con nombres seguros.Both the /keyfile: and /keycontainer: options sign assemblies with strong names. Por tanto, lo lógico es proporcionar una de estas opciones cada vez.Therefore, it is logical to supply only one of these options at a time.

Puede especificar diversos ensamblados de referencia utilizando la opción /reference varias veces.You can specify multiple reference assemblies by using the /reference option multiple times.

Debido a la forma en que Tlbimp.exe genera ensamblados, no es posible redirigir a un ensamblado a otra versión de mscorlib.Due to the way in which Tlbimp.exe generates assemblies, it is not possible to retarget an assembly to a different mscorlib version. Por ejemplo, si desea generar un ensamblado que tiene como destino .NET Framework 2.0, será necesario usar la versión de Tlbimp.exe incluida en el SDK de .NET Framework 2.0/3.0/3.5.For example, if you desire to generate an assembly that targets .NET Framework 2.0, the Tlbimp.exe shipped with the .NET Framework 2.0/3.0/3.5 SDK must be used. Para usar .NET Framework 4.x como destino, será necesario usar la versión de Tlbimp.exe incluida con el SDK de .NET Framework 4.x.In order to target .NET Framework 4.x, the Tlbimp.exe shipped with a .NET Framework 4.x SDK should be used.

De manera opcional, un identificador de recurso se puede anexar a un archivo de biblioteca de tipos cuando se importa desde un módulo que contiene varias bibliotecas de tipos.A resource ID can optionally be appended to a type library file when importing a type library from a module containing multiple type libraries. Tlbimp.exe encuentra este archivo solo si se ubica en el directorio actual o si se especifica la ruta de acceso completa.Tlbimp.exe is able to locate this file only if it is in the current directory or if you specify the full path. Vea el ejemplo que se muestra más adelante en este tema.See the example later in this topic.

EjemplosExamples

El comando siguiente genera un ensamblado con el mismo nombre que el de la biblioteca de tipos que se encuentra en myTest.tlb y con la extensión .dll.The following command generates an assembly with the same name as the type library found in myTest.tlb and with the .dll extension.

tlbimp myTest.tlb   

El comando siguiente genera un ensamblado con el nombre myTest.dll.The following command generates an assembly with the name myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

El comando siguiente genera un ensamblado con el mismo nombre que la biblioteca de tipos especificada por MyModule.dll\1 y con la extensión .dll.The following command generates an assembly with the same name as the type library specified by MyModule.dll\1 and with the .dll extension. MyModule.dll\1 debe estar ubicado en el directorio actual.MyModule.dll\1 must be located in the current directory.

tlbimp MyModule.dll\1  

El comando siguiente genera un ensamblado con el nombre myTestLib.dll para la biblioteca de tipos TestLib.dll.The following command generates an assembly with the name myTestLib.dll for the type library TestLib.dll. La opción /transform:dispret transforma los parámetros [out, retval] de los métodos de las interfaces dispinterface de la biblioteca de tipos en valores devueltos de la biblioteca administrada.The /transform:dispret option transforms any [out, retval] parameters of methods on dispinterfaces in the type library into return values in the managed library.

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

En el ejemplo anterior, la biblioteca de tipos TestLib.dll incluye un método de interfaz dispinterface denominado SomeMethod que devuelve void y que tiene un parámetro [out, retval].The type library TestLib.dll, in the preceding example, includes a dispinterface method named SomeMethod that returns void and has an [out, retval] parameter. El siguiente código es la signatura del método de la biblioteca de tipos de entrada de SomeMethod en TestLib.dll.The following code is the input type library method signature for SomeMethod in TestLib.dll.

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

Al especificar la opción /transform:dispret, Tlbimp.exe transforma el parámetro [out, retval] de SomeMethod en un valor devuelto de tipo bool.Specifying the /transform:dispret option causes Tlbimp.exe to transform the [out, retval] parameter of SomeMethod into a bool return value. A continuación, se muestra la signatura del método que Tlbimp.exe genera para SomeMethod en la biblioteca administrada myTestLib.dll cuando se especifica la opción /transform:dispret.The following is the method signature that Tlbimp.exe produces for SomeMethod in the managed library myTestLib.dll when the /transform:dispret option is specified.

bool SomeMethod();  

Si utiliza Tlbimp.exe para generar una biblioteca administrada para TestLib.dll sin especificar la opción /transform:dispret, la herramienta genera la siguiente signatura de método para SomeMethod en la biblioteca administrada myTestLib.dll.If you use Tlbimp.exe to produce a managed library for TestLib.dll without specifying the /transform:dispret, the tool produces the following method signature for SomeMethod in the managed library myTestLib.dll.

void SomeMethod(out bool x);  

Vea tambiénSee also