向 COM 注册程序集 - .NET Framework

向 COM 注册程序集 - .NET Framework

可以运行名为 程序集注册工具(Regasm.exe) 的命令行工具,以注册或注销程序集以用于 COM。 Regasm.exe 向系统注册表添加有关该类的信息,以便 COM 客户端可以透明地使用 .NET Framework 类。 该 RegistrationServices 类提供等效的功能。

必须先在 Windows 注册表中注册托管组件,然后才能从 COM 客户端激活它。 下表显示了 Regasm.exe 通常会添加到 Windows 注册表的键。 (0000000 表示实际 GUID 值)。

GUID

DESCRIPTION

注册表项

CLSID

类标识符

HKEY_CLASSES_ROOT\CLSID\{000…000}

IID

接口标识符

HKEY_CLASSES_ROOT\Interface\{000…000}

LIBID

库标识符

HKEY_CLASSES_ROOT\TypeLib\{000…000}

编程标识符

编程标识符

HKEY_CLASSES_ROOT\000…000

在 HKCR\CLSID\{0000...0000} 键中,默认值设置为类的 ProgID,并添加了两个新的命名值:“Class”和“Assembly”。 运行时从注册表中读取程序集值,并将其传递给运行时程序集解析程序。 程序集解析程序会根据程序集信息(如名称和版本号)尝试查找程序集。 若要使程序集解析程序找到程序集,程序集必须位于以下位置之一:

全局程序集缓存(必须为强名称程序集)。

在应用程序目录中。 从应用程序路径加载的程序集只能从该应用程序访问。

沿 /codebase 选项指定的文件路径到 Regasm.exe。

Regasm.exe 还会在 HKCR\CLSID\{0000…0000} 键下创建 InProcServer32 密钥。 键的默认值设置为初始化公共语言运行时 (Mscoree.dll) 的 DLL 的名称。

检查注册表项

COM 互作提供一个标准类工厂实现,用于创建任何 .NET Framework 类的实例。 客户端可以在托管 DLL 上调用 DllGetClassObject 来获取类工厂并创建对象,就像使用任何其他 COM 组件一样。

关于 InprocServer32 子项, 出现在传统 COM 类型库中的对 Mscoree.dll 的引用表示公共语言运行时创建托管对象。

另请参阅

向 COM 公开 .NET Framework 组件

如何:从 COM 引用 .NET 类型

调用 .NET 对象

为 COM 访问部署应用程序

相关推荐

吴三桂放清兵入关的原因是什么
bst365老牌体育

吴三桂放清兵入关的原因是什么

📅 07-09 👁️ 1233
微信p图怎么弄
365sport365

微信p图怎么弄

📅 10-21 👁️ 4337
八字怎么算自己什么时候发财
365sport365

八字怎么算自己什么时候发财

📅 08-01 👁️ 5916