Tlbexp.exe (Exportador de la biblioteca de tipos)
El Exportador de la biblioteca de tipos genera una biblioteca que describe los tipos definidos en un ensamblado de Common Language Runtime.
Esta herramienta se instala automáticamente con Visual Studio y con el SDK de Windows. Para ejecutar la herramienta, se recomienda usar el símbolo del sistema de Visual Studio o del SDK de Windows (shell de CMD). Estas utilidades permiten ejecutar la herramienta fácilmente, sin navegar a la carpeta de instalación. Para obtener más información, vea Símbolos del sistema del SDK de Windows y Visual Studio.
Si tiene instalado Visual Studio en el equipo: en la barra de tareas, haga clic en Start, All Programs, Visual Studio y Visual Studio Tools y, a continuación, haga clic en Visual Studio Command Prompt.
O bien
Si tiene el SDK de Windows instalado en el equipo: en la barra de tareas, haga clic en Start, All Programs, haga clic en la carpeta del SDK de Windows y, a continuación, haga clic en Command Prompt (o CMD Shell).
En el símbolo del sistema, escriba:
tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]
Parámetros
Argumento |
Descripción |
---|---|
assemblyName |
Ensamblado para el que se exporta una biblioteca de tipos. |
Opción |
Descripción |
---|---|
/asmpath:directorio |
Especifica la ubicación para buscar los ensamblados. Si utiliza esta opción, debe especificar de forma explícita las ubicaciones en las que desea buscar los ensamblados a los que se hace referencia, incluyendo el directorio actual. Cuando utiliza la opción asmpath, el Exportador de la biblioteca de tipos no buscará un ensamblado en la caché global de ensamblados (GAC). |
/help |
Muestra la sintaxis de comandos y opciones para la herramienta. |
/names:nombreArchivo |
Especifica el uso de mayúsculas y minúsculas en los nombres de una biblioteca de tipos. El argumento filename es un archivo de texto. Cada línea del archivo especifica el uso de mayúsculas y minúsculas en un nombre de la biblioteca de tipos. |
/nologo |
Suprime la presentación de la portada de inicio de Microsoft. |
/oldnames |
Obliga a Tlbexp.exe a exportar los nombres de los tipos representativos si existe un conflicto de nombres de tipos. Tenga en cuenta que éste era el comportamiento predeterminado en versiones anteriores a la versión 2.0 de .NET Framework. |
/out:archivo |
Especifica el nombre del archivo de biblioteca de tipos que se genera. Si se omite esta opción, Tlbexp.exe genera una biblioteca de tipos con el mismo nombre que el ensamblado (el nombre real del ensamblado, que no tiene por qué coincidir necesariamente con el del archivo que lo contiene) y una extensión .tlb. |
/silent |
Suprime la presentación de mensajes de operaciones correctas. |
/tlbreference:nombreBibliotecaTipos |
Obliga a Tlbexp.exe a resolver de forma explícita las referencias a bibliotecas de tipos sin consultar el Registro. Por ejemplo, si el ensamblado B hace referencia al ensamblado A, puede utilizar esta opción para proporcionar una referencia explícita a la biblioteca de tipos, en lugar de confiar en la biblioteca de tipos especificada en el Registro. Tlbexp.exe realiza una comprobación de la versión para asegurarse de que la versión de la biblioteca de tipos coincide con la del ensamblado; de lo contrario, genera un error. Observe que la opción tlbreference sigue consultado el Registro en los casos en los que se aplica el atributo ComImportAttribute a una interfaz que, a continuación, es implementada por otro tipo. |
/tlbrefpath:rutaAcceso |
Ruta de acceso completa a una biblioteca de tipos a la que se hace referencia. |
/win32 |
Al realizar la compilación en un equipo de 64 bits, esta opción especifica que Tlbexp.exe debe generar una biblioteca de tipos de 32 bits. |
/win64 |
Al realizar la compilación en un equipo de 32 bits, esta opción especifica que Tlbexp.exe debe generar una biblioteca de tipos de 64 bits. |
/verbose |
Especifica el modo detallado; muestra una lista de los ensamblados relacionados para los que es necesario generar una biblioteca de tipos. |
/? |
Muestra la sintaxis de comandos y opciones para la herramienta. |
Nota |
---|
Las opciones de la línea de comandos de Tlbexp.exe no distinguen entre mayúsculas y minúsculas, y se pueden proporcionar en cualquier orden.Por tanto, basta con especificar parte de la opción para identificarla de manera única.Por ejemplo, /n equivale a /nologo y /o:outfile.tlb equivale a /out:outfile.tlb. |
Comentarios
Tlbexp.exe genera una biblioteca de tipos que contiene definiciones de los tipos definidos en el ensamblado. Las aplicaciones como Visual Basic 6.0 pueden utilizar la biblioteca de tipos generada para enlazarla con los tipos de .NET definidos en el ensamblado.
Todo el ensamblado se convierte de una vez. No se puede utilizar Tlbexp.exe para generar información de tipos correspondiente a un subconjunto de los tipos definidos en un ensamblado.
No se puede utilizar Tlbexp.exe para generar una biblioteca de tipos desde un ensamblado que se importó utilizando la herramienta Importador de la biblioteca de tipos (Tlbimp.exe). En su lugar, debería hacer referencia a la biblioteca de tipos original que se importó con Tlbimp.exe. Puede exportar una biblioteca de tipos de un ensamblado que hace referencia a los ensamblados que se importaron utilizando Tlbimp.exe. Consulte los ejemplos en la sección siguiente.
Tlbexp.exe coloca las bibliotecas de tipos generadas en el directorio de trabajo actual o en el directorio especificado para el archivo de salida. Un solo ensamblado puede producir la generación de varias bibliotecas de tipos.
Tlbexp.exe genera una biblioteca de tipos pero no la registra, a diferencia de la herramienta Registro de ensamblados (Regasm.exe) que genera y registra una biblioteca de tipos. Para generar y registrar una biblioteca de tipos con COM se ha de utilizar Regasm.exe.
Si no especifica ni la opción /win32 ni la opción /win64, Tlbexp.exe genera una biblioteca de tipos de 32 o de 64 bits, dependiendo del tipo de equipo en el que se está realizando la compilación (equipo de 32 bits o de 64 bits). Si desea realizar la compilación en diferentes plataformas, puede utilizar la opción /win64 en un equipo de 32 bits para generar una biblioteca de tipos de 64 bits y la opción /win32 en un equipo de 64 bits para generar una biblioteca de tipos de 32 bits. En las bibliotecas de tipos de 32 bits, el valor SYSKIND se establece como SYS_WIN32. En las bibliotecas de tipos de 64 bits, el valor SYSKIND se establece como SYS_WIN64. Todas las transformaciones de tipos de datos (por ejemplo, los tipos de datos con el tamaño del puntero, como IntPtr y UIntPtr) se convierten correctamente.
Si utiliza el atributo MarshalAsAttribute para especificar un valor SafeArraySubType de VT_UNKOWN o VT_DISPATCH, Tlbexp.exe omite cualquier uso subsiguiente del campo SafeArrayUserDefinedSubType. Por ejemplo, dadas las siguientes firmas:
[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;}
se genera la biblioteca de tipos siguiente:
[id(0x60020004)]
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);
[id(0x60020005)]
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);
Observe que Tlbexp.exe omite el campo SafeArrayUserDefinedSubType.
Como las bibliotecas de tipos no pueden dar cabida a toda la información que se encuentra en ensamblados, Tlbexp.exe puede descartar algunos datos durante el proceso de exportación. Para obtener una explicación del proceso de transformación y de la identificación del origen de cada sección de información que se emite a una biblioteca de tipos, vea el Resumen de la conversión de ensamblados en bibliotecas de tipos.
Observe que el Exportador de la biblioteca de tipos exporta métodos que tienen parámetros TypedReference como VARIANT, incluso si el objeto TypedReference no tiene ningún significado en el código no administrado. Cuando se exporten métodos que tengan parámetros TypedReference, el Exportador de la biblioteca de tipos no generará una advertencia ni un error, y el código no administrado que utiliza la biblioteca de tipos resultante no se ejecutará correctamente.
El Exportador de la biblioteca de tipos se admite en Microsoft Windows 2000 y posterior.
Ejemplos
El comando siguiente genera una biblioteca de tipos con el mismo nombre que el ensamblado que se encuentra en myTest.dll.
tlbexp myTest.dll
El comando siguiente genera una biblioteca de tipos con el nombre clipper.tlb.
tlbexp myTest.dll /out:clipper.tlb
El ejemplo siguiente muestra la utilización de Tlbexp.exe para exportar una biblioteca de tipos desde un ensamblado que hace referencia a ensamblados que se importaron con Tlbimp.exe.
Primero se utiliza Tlbimp.exe para importar la biblioteca de tipos myLib.tlb y guardarla como myLib.dll.
tlbimp myLib.tlb /out:myLib.dll
En el siguiente comando se usa el compilador de C# para compilar el archivo Sample.dll, que hace referencia al archivo myLib.dll creado en el ejemplo anterior.
CSC Sample.cs /reference:myLib.dll /out:Sample.dll
El comando siguiente genera una biblioteca de tipos para Sample.dll que hace referencia a myLib.dll.
tlbexp Sample.dll
Vea también
Referencia
Regasm.exe (Herramienta de registro de ensamblados)
TlbImp.exe (Importador de la biblioteca de tipos)
Símbolos del sistema del SDK de Windows y Visual Studio
Otros recursos
Herramientas de .NET Framework
Resumen de la conversión de ensamblados en bibliotecas de tipos
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
1 de abril de 2011 |
Se agregó información sobre el uso de los símbolos del sistema de Visual Studio y del SDK de Windows. |
Mejora de la información. |