从 COM 应用程序进行的运行时初始化

必须先将公共语言运行时载入内存,COM 应用程序才能激活托管类型。 虽然 COM 互操作并不实际加载运行时(而是由运行时启动代码加载),但 COM 应用程序可以指定一个特定的目标运行时版本。

运行时版本由以下因素确定:

  • COM 应用程序可以在应用程序配置文件中指定运行时版本。 有关更多信息,请参见配置 COM 应用程序并行执行

  • 运行时可能已由一个可扩展主应用程序(例如,Microsoft Internet Explorer 或 Microsoft Office)载入内存。 COM 应用程序插件使用为主应用程序加载的运行时来运行托管组件。

  • 如果需要严格控制,COM 应用程序可以通过在程序代码中调用 ICLRMetaHostPolicy::GetRequestedRuntime 方法(从 mscoree.dll 中导出)预加载一个特定版本的运行时。 或者,应用程序也可以根据一个激活的 COM 类,通过调用 GetRequestedRuntimeVersionForCLSID 函数(也从 mscoree.dll 中导出)并将返回值传递到 CorBindToRuntimeHost 函数来指定不同的目标运行时版本。

如果没有这些因素,启动代码将根据配置 COM 应用程序并行执行中描述的默认加载行为加载运行时。

类型解析

如果 Windows 注册表中有多个版本的程序集包含要激活的类型,默认情况下,运行时将加载最新的版本。

如果 COM 应用程序有应用程序配置文件,可将绑定重定向到特定版本的程序集中的类型。 有关更多信息,请参见配置 COM 应用程序并行执行

备注

随 .NET Framework 1.0 版安装的组件没有与版本相关的注册表项。对于这些组件,计算机上一个类型只有一个版本可供 COM 使用。

请参见

概念

与版本相关的注册表项

配置 COM 应用程序并行执行

应用与版本相关的特性

COM 组件和并行执行

其他资源

COM 互操作的并行执行