Registrar ensamblados con COM

Actualización: noviembre 2007

Se puede ejecutar una herramienta de la línea de comandos, denominada herramienta Registro de ensamblados (Regasm.exe) para registrar o anular el registro de un ensamblado que se utiliza con COM. Regasm.exe agrega información acerca de la clase al Registro del sistema para que los clientes COM puedan utilizar la clase de .NET de forma transparente. La clase RegistrationServices proporciona la funcionalidad equivalente.

Un componente administrado debe estar registrado en el Registro de Windows antes de que se pueda activar desde un cliente COM. En la tabla siguiente se muestran las claves que Regasm.exe agrega normalmente al Registro de Windows. (000000 indica el valor real de GUID).

GUID

Descripción

Clave del Registro

CLSID

Identificador de clase

HKEY_CLASSES_ROOT\CLSID\{000…000}

IID

Identificador de interfaz

HKEY_CLASSES_ROOT\Interface\{000…000}

LIBID

Identificador de biblioteca

HKEY_CLASSES_ROOT\TypeLib\{000…000}

Id. de programa

Identificador de programación

HKEY_CLASSES_ROOT\000…000

Bajo la clave HKCR\CLSID\{0000…0000}, el valor predeterminado se establece en el ProgID de la clase, y se agregan dos nuevos valores con nombre, Class y Assembly. El motor en tiempo de ejecución lee el valor del ensamblado en el Registro y le pasa este valor al interpretador de ensamblados en tiempo de ejecución. El interpretador de ensamblados intenta localizar el ensamblado, basándose en la información del ensamblado como el nombre y el número de versión. Para que el interpretador de ensamblados localice un ensamblado, éste tiene que estar en una de las siguientes ubicaciones:

  • La caché de ensamblados global (debe ser un ensamblado de nombre seguro).

  • En el directorio de la aplicación. Sólo se puede tener acceso a los ensamblados cargados desde la ruta de acceso de la aplicación desde la propia aplicación.

  • Junto a una ruta de acceso especificada con la opción /codebase en Regasm.exe.

Regasm.exe crea también la clave InProcServer32 bajo la clave HKCR\CLSID\{0000…0000}. El valor predeterminado de la clave se establece en el nombre del archivo DLL que inicializa Common Language Runtime (Mscoree.dll).

Examinar entradas del Registro

La interoperabilidad COM proporciona una implementación de generador de clases estándar para crear una instancia de cualquier clase de .NET Framework. Los clientes pueden llamar a DllGetClassObject en el archivo DLL administrado para obtener un generador de clases y crear objetos, del mismo modo que lo harían con cualquier otro componente COM.

En lugar de la biblioteca de tipos COM tradicional, aparece una referencia a Mscoree.dll para indicar que Common Language Runtime crea el objeto administrado.

Vea también

Tareas

Cómo: Hacer referencia a tipos de .NET desde COM

Conceptos

Exponer componentes de .NET Framework en COM

Llamar a un objeto de .NET

Implementar una aplicación para obtener acceso a COM