Regasm.exe (Herramienta de registro de ensamblados)

La herramienta de registro de ensamblados lee los metadatos de un ensamblado y agrega las entradas necesarias al Registro, lo que permite a los clientes COM crear clases de .NET Framework de forma transparente. Una vez registrada una clase, cualquier cliente COM puede usarla como si se tratase de una clase COM. La clase se registra una sola vez, cuando se instala el ensamblado. Las instancias de las clases del ensamblado no se pueden crear a partir de COM si no están registradas.

Para ejecutar la herramienta, use el Símbolo del sistema para desarrolladores de Visual Studio o PowerShell de Visual Studio para desarrolladores.

En el símbolo del sistema, escriba lo siguiente:

Sintaxis

regasm assemblyFile [options]

Parámetros

Parámetro Descripción
assemblyFile El ensamblado que se va a registrar con COM.
Opción Descripción
/codebase Crea una entrada de código base en el Registro. La entrada de código base especifica la ruta de acceso del archivo de un ensamblado que no está instalado en la caché global de ensamblados. No especifique esta opción si posteriormente va a instalar el ensamblado que va a registrar en la caché global de ensamblados. Se recomienda encarecidamente que el argumento assemblyFile que se especifica con la opción /codebase sea un ensamblado con nombre seguro.
/registered Especifica que esta herramienta solo hará referencia a las bibliotecas de tipos que ya se hayan registrado.
/asmpath:directory Especifica un directorio que contiene las referencias de ensamblado. Se debe usar con la opción /regfile.
/nologo Suprime la presentación de la portada de inicio de Microsoft.
/regfile [:regFile] Genera el archivo .reg especificado para el ensamblado, que contiene las entradas del Registro necesarias. El hecho de especificar esta opción no cambia el Registro. No se puede usar esta opción con las opciones /u o /tlb.
/silent o /s Suprime la presentación de mensajes de aprobación.
/tlb [:typeLibFile] Genera una biblioteca de tipos a partir del ensamblado especificado que contiene definiciones de los tipos accesibles definidos en el ensamblado.
/unregister o /u Anula el registro de las clases que se pueden crear que se encuentran en assemblyFile. Cuando se omite esta opción, Regasm.exe registra en el ensamblado las clases que se pueden crear.
/verbose Especifica el modo detallado; cuando se especifica con la opción /tlb, muestra una lista de los ensamblados a los que se hace referencia para los que es necesario generar una biblioteca de tipos.
/? o /help Muestra las opciones y la sintaxis de los comandos para la herramienta.

Nota

Las opciones de la línea de comandos de Regasm.exe no distinguen entre mayúsculas y minúsculas. Por otra parte, basta con proporcionar parte de la opción de forma que se identifique de manera inequívoca. Por ejemplo, /n equivale a /nologo y /t:outfile.tlb, a /tlb:outfile.tlb.

Comentarios

Puede usar la opción /regfile para generar un archivo .reg que contenga las entradas del Registro en lugar de hacer los cambios en el Registro directamente. El Registro se puede actualizar en un equipo importando el archivo .reg con la herramienta Editor del Registro (Regedit.exe). El archivo .reg no contiene actualizaciones del registro que se puedan realizar mediante funciones de registro definidas por el usuario. La opción /regfile solo emite entradas del registro para clases administradas. Esta opción no emite entradas del Registro para TypeLibID ni InterfaceID.

Cuando se especifica la opción /tlb, Regasm.exe genera y registra una biblioteca de tipos donde se describen los tipos encontrados en el ensamblado. Regasm.exe coloca las bibliotecas de tipos generadas en el directorio de trabajo actual o en el directorio especificado para el archivo de salida. La generación de una biblioteca de tipos para un ensamblado que hace referencia a otros ensamblados puede provocar la generación de varias bibliotecas de tipos a la vez. Puede usar la biblioteca de tipos para proporcionar información de tipos para las herramientas de desarrollo como Visual Studio. No use la opción /tlb si el ensamblado que se va a registrar lo ha generado la herramienta Importador de la biblioteca de tipos (Tlbimp.exe). No se puede exportar una biblioteca de tipos de un ensamblado que se ha importado desde una biblioteca de tipos. El uso de la opción /tlb tiene el mismo efecto que el uso de las herramientas Exportador de la biblioteca de tipos (Tlbexp.exe) y Regasm.exe, con la particularidad de que Tlbexp.exe no registra la biblioteca de tipos que genera. Si usa la opción /tlb para registrar una biblioteca de tipos, puede usar la opción /tlb con la opción /unregister para anular el registro de la biblioteca de tipos. El uso de las dos opciones juntas anulará el registro de la biblioteca de tipos y de las entradas de la interfaz, lo que puede limpiar considerablemente el Registro.

Al registrar un ensamblado para que lo use COM, Regasm.exe agrega entradas al Registro del equipo local. Más concretamente, crea claves del Registro dependientes de la versión que permiten que varias versiones del mismo ensamblado se ejecuten en paralelo en un equipo. Al registrar un ensamblado por primera vez, se crea una clave de nivel superior para el ensamblado y una subclave única para la versión específica. Cada vez que se registra una nueva versión del ensamblado, Regasm.exe crea una subclave para la nueva versión.

Por ejemplo, imagine un escenario en el que registra el componente administrado myComp.dll, versión 1.0.0.0, para que lo use COM. Posteriormente, registra myComp.dll, versión 2.0.0.0. Determina que todas las aplicaciones de cliente COM del equipo están usando myComp.dll versión 2.0.0.0 y decide anular el registro de myComponent.dll versión 1.0.0.0. Este esquema del Registro permite anular el registro de myComp.dll versión 1.0.0.0 porque solo se quita la subclave de la versión 1.0.0.0.

Después de registrar un ensamblado mediante Regasm.exe, puede instalarlo en la caché global de ensamblados para que se pueda activar desde cualquier cliente COM. Si el ensamblado solo va a activar una única una aplicación, se puede colocar en el directorio de dicha aplicación. El uso de la opción /codebase es una alternativa al uso de la memoria caché global de ensamblados; sin embargo, la ubicación del ensamblado durante el registro se registra globalmente y se producirá un error de activación si el ensamblado se mueve. Si el ensamblado no se encuentra a través del sondeo, la opción /codebase cargará el ensamblado en un contexto de carga que tenga consideraciones adicionales documentadas en Assembly.LoadFrom.

Ejemplos

El comando siguiente registra todas las clases públicas contenidas en myTest.dll.

regasm myTest.dll

El comando siguiente genera el archivo myTest.reg, que contiene todas las entradas del Registro necesarias. Este comando no actualiza el Registro.

regasm myTest.dll /regfile:myTest.reg

El comando siguiente registra todas las clases públicas contenidas en myTest.dll, y genera y registra la biblioteca de tipos myTest.tlb, que contiene definiciones de todos los tipos públicos definidos en myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Vea también