Регистрация сборок в 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