Регистрация сборок в COM

С целью регистрации или отмены регистрации сборки для использования с COM можно использовать средство командной строки, называющееся программой регистрации сборок (Regasm.exe). Программа Regasm.exe добавляет сведения о классе .NET в системный реестр, предоставляя COM-клиентам возможность прозрачно его использовать. Класс RegistrationServices обеспечивает эквивалентные функциональные возможности подписания.

Прежде чем управляемый компонент может быть активирован COM-клиентом, он должен быть зарегистрирован в системном реестре Windows. В следующей таблице приведены разделы, которые программа Regasm.exe обычно добавляет в реестр Windows. (000000 означает фактическое значение GUID.)

GUID

Описание

Раздел реестра

CLSID

Идентификатор класса

HKEY_CLASSES_ROOT\CLSID\{000…000}

идентификатор интерфейса (IID)

Идентификатор интерфейса

HKEY_CLASSES_ROOT\Interface\{000…000}

LIBID

Идентификатор библиотеки

HKEY_CLASSES_ROOT\TypeLib\{000…000}

ProgID

Программный идентификатор

HKEY_CLASSES_ROOT\000…000

В разделе HKCR\CLSID\{0000…0000} в качестве значения по умолчанию установлено значение ProgID класса и добавлено два новых именованных значения, Class и Assembly. Среда выполнения читает в реестре значение Assembly и передает его распознавателю сборок. сборок пытается найти сборку в соответствии с полученными о ней сведениями — по имени и номеру версии. Чтобы распознаватель сборок мог найти сборку, она должна находиться в одном из следующих мест:

  • В глобальном кэше сборок (должна быть сборкой со строгими именами).

  • В папке приложения. Сборки, загруженные из папки приложения, доступны только для этого приложения.

  • В пути к файлу, заданном параметром /codebase программы Regasm.exe.

Программа Regasm.exe также создает раздел InProcServer32 в разделе HKCR\CLSID\{0000…0000}. В качестве значения по умолчанию для этого раздела установлено имя библиотеки DLL, которая инициализирует среду CLR (Mscoree.dll).

Просмотр записей реестра

Для создания экземпляра любого класса .NET Framework COM-взаимодействие обеспечивает реализацию стандартной фабрики классов. Для получения фабрики классов и создания объектов клиенты могут вызывать функцию DllGetClassObject управляемой DLL точно так же, как и для любого другого COM-компонента.

Ссылка на Mscoree.dll появляется вместо традиционной библиотеки COM-типов. Она указывает, что управляемый объект создается средой CLR.

Элементы реестра

См. также

Задачи

Практическое руководство. Создание ссылки на типы .NET из COM

Основные понятия

Предоставление COM-клиентам доступа к компонентам .NET Framework

Вызов объекта .NET

Развертывание приложения для доступа к COM-приложению