打包用于 COM 的 .NET Framework 程序集

COM 开发人员可以从以下关于他们计划在应用程序中集成的托管类型的信息中受益:

  • COM 应用程序可使用的类型列表

    某些托管类型对 COM 不可见;有些是可见的,但不可创建;和一些是可见和可创建。 程序集可以包含不可见、可见、不可创建和可创建类型的任意组合。 为了完整性,请确定要向 COM 公开的程序集中的类型,尤其是在这些类型是向 .NET Framework 公开的类型子集时。

    有关详细信息,请参阅 符合互作条件的 .NET 类型

  • 版本控制说明

    实现类接口(COM 互操作生成的接口)的托管类受版本控制限制。

    有关使用类接口的指南,请参阅 类接口简介

  • 部署说明

    发布者签名的具有强名称的程序集可安装到全局程序集缓存。 未签名的程序集必须作为专用程序集安装在用户的计算机上。

    有关详细信息,请参阅 程序集安全注意事项

  • 类型库所含内容

    大多数类型在被 COM 应用程序使用时需要一个类型库。 可以生成类型库或让 COM 开发人员执行此任务。 Windows SDK 提供了以下用于生成类型库的选项:

    无论选择何种机制,只有你提供的程序集中定义的公共类型会被包括在生成的类型库中。

有关说明,请参阅 如何:在 .NET-Based 应用程序中将类型库嵌入为 Win32 资源

类型库导出程序

类型库导出程序(Tlbexp.exe)是一种命令行工具,用于将程序集中包含的类和接口转换为 COM 类型库。 类的类型信息可用后,COM 客户端可以创建 .NET 类的实例并调用实例的方法,就像它是 COM 对象一样。 Tlbexp.exe 可以一次性转换整个程序集。 不能使用 Tlbexp.exe 生成程序集中定义的类型子集的类型信息。

TypeLibConverter 类

TypeLibConverter 类位于 System.Runtime.Interop 命名空间中,将程序集中包含的类和接口转换为 COM 类型库。 此 API 生成与类型库导出程序相同的类型信息,如上一部分所述。

TypeLibConverter 类实现ITypeLibConverter

程序集注册工具

应用 /tlb: 选项时,程序集注册工具(Regasm.exe)可以生成和注册类型库。 COM 客户端要求在 Windows 注册表中安装类型库。 如果没有此选项,Regasm.exe 只注册程序集中的类型,而不是类型库。 在程序集中注册类型并注册类型库是不同的活动。

.NET Services 安装工具

.NET Services 安装工具(Regsvcs.exe)将托管类添加到 Windows 2000 组件服务中,并将多个任务合并到一个工具中。 除了加载和注册程序集之外,Regsvcs.exe 还可以将类型库生成、注册和安装到现有的 COM+ 1.0 应用程序中。

另请参阅