从 COM 应用程序进行的运行库初始化
更新:2007 年 11 月
必须先将公共语言运行时载入内存,COM 应用程序才能激活托管类型。虽然 COM 互操作并不实际加载运行时(而是由运行时启动代码加载),但 COM 应用程序可以指定一个特定的目标运行时版本。
运行时版本由以下因素确定:
COM 应用程序可以在应用程序配置文件中指定运行时版本。有关更多信息,请参见配置 COM 应用程序并行执行。
运行时可能已由一个可扩展主应用程序(例如,Microsoft Internet Explorer 或 Microsoft Office)载入内存。COM 应用程序插件使用为主应用程序加载的运行时来运行托管组件。
如果需要严格控制,COM 应用程序可以通过在程序代码中调用 CorBindToRuntimeHost(从 mscoree.dll 中导出)方法预加载一个特定版本的运行时。或者,应用程序也可以根据一个激活的 COM 类,通过调用 GetRequestedRuntimeVersionForCLSID 方法(也从 mscoree.dll 中导出)并将返回值传递到 CorBindToRuntimeHost 来指定不同的目标运行时版本。
如果没有这些因素,启动代码将加载计算机上安装的兼容运行时的最新版本。
类型解析
如果 Windows 注册表中有多个版本的程序集包含要激活的类型,默认情况下,运行时将加载最新的版本。
如果 COM 应用程序有应用程序配置文件,可将绑定重定向到特定版本的程序集中的类型。有关更多信息,请参见配置 COM 应用程序并行执行。
说明: |
---|
随 .NET Framework 1.0 版安装的组件没有与版本相关的注册表项。对于这些组件,计算机上一个类型只有一个版本可供 COM 使用。 |