无注册 COM 互作无需使用 Windows 注册表来存储程序集信息即可激活组件。 在设计时创建 Win32 样式的清单文件,其中包含有关绑定和激活的信息,而不是在部署过程中在计算机上注册组件。 这些清单文件(而不是注册表项)直接激活对象。
不在部署期间注册程序集而使用免注册激活具有两大优势:
可以在计算机上安装多个版本时控制激活哪个 DLL 版本。
最终用户可以使用 XCOPY 或 FTP 将应用程序复制到其计算机上的相应目录。 然后,可以从该目录运行应用程序。
本部分介绍无注册 COM 互作所需的两种类型的清单:应用程序和组件清单。 这些清单是 XML 文件。 应用程序清单由应用程序开发人员创建,其中包含描述程序集和程序集依赖项的元数据。 由组件开发人员创建的组件清单包含通常位于 Windows 注册表中的信息。
免注册 COM 互操作的需求
对免注册 COM 互操作的支持根据库程序集的类型而略有差异;具体而言,因该程序集是非托管的(COM 并行)还是托管的(基于 NET)而异。 下表显示了每种程序集类型的作系统和 .NET Framework 版本要求。
装配类型 操作系统 .NET Framework 版本 COM 并行 Microsoft Windows XP 不需要。 基于 .NET 带 SP2 的 Windows XP NET Framework 1.1 或更高版本。 Windows Server 2003 系列还支持基于 .NET 的程序集的无注册 COM 互操作。
要使基于 .NET 的类与 COM 的免注册激活兼容,类必须具有无参数构造函数,并且必须是公共类。
为无注册激活配置 COM 组件
要使 COM 组件参与免注册激活,必需将其作为并行程序集进行部署。 并行程序集是非托管程序集。 有关详细信息,请参阅使用并行程序集。
若要使用 COM 并行程序集,基于 .NET 的应用程序开发人员必须提供一个包含绑定和激活信息的应用程序清单。 Windows XP 操作系统中内置了对并行非托管程序集的支持。 当激活的组件不在注册表中时,由操作系统支持的 COM 运行时会扫描应用程序清单中的激活信息。
对于 Windows XP 上安装的 COM 组件,无注册激活是可选的。 有关向应用程序添加并行程序集的详细说明,请参阅 “使用并行程序集”。
注释
并行执行是一项 .NET Framework 功能,它使运行时的多个版本以及使用运行时版本的应用程序和组件的多个版本同时在同一台计算机上运行。 并行执行和并行程序集是用于提供并行功能的不同机制。