配置 COM 应用程序并行执行
使用应用程序配置文件可以将 COM 应用程序绑定到特定的托管组件,还可以指定用哪个版本的运行时运行该组件。 COM 应用程序开发人员可以创建 .NET Framework 应用程序配置文件,并将该文件随它们的应用程序一起部署。
默认加载行为
如果非托管应用程序没有应用程序配置文件,则按以下方式确定用于加载组件的运行时的版本:
如果该组件是使用 .NET Framework 4 版或更高版本创建的,则使用创建该组件的运行时版本加载它。
如果该组件是使用较早版本的 .NET Framework 创建的,则使用计算机上安装的低于版本 4 的最新运行时版本加载它。 例如,如果某个组件是使用 .NET Framework 1.1 版创建的,并且计算机上安装了三个版本的 .NET Framework(.NET Framework 1.1、.NET Framework 3.5 SP1 和 .NET Framework 4),则将使用 .NET Framework 3.5 SP1 加载该组件。 在 .NET Framework 4 之前,这是默认行为。
此加载行为会影响在相同进程中并行加载的组件。 .NET Framework 4 的运行时可在进程内与 .NET Framework 早期版本的运行时一起运行。 请参见进程内并行执行。
指定运行时版本
如果默认加载行为不能满足 COM 应用程序的要求,则可以使用应用程序配置文件中的 <supportedRuntime> 元素指定应用程序需要的运行时版本。 例如,可以指定运行时版本 1.1.4322,该版本将加载 .NET Framework 版本 1.1。 有关说明,请参见面向 .NET Framework 版本。
注意 |
---|
由可扩展宿主(例如,Microsoft Internet Explorer 或 Microsoft Office)承载的 COM 应用程序不能控制加载哪个版本的运行时。 |
如果您有使用 .NET Framework 4 和 .NET Framework 早期版本创建的组件,则必须将这两个版本作为支持的运行时列出,原因是默认加载行为不使用 .NET Framework 4 加载早期版本的组件。 若要强制使用 .NET Framework 4 加载早期版本的组件,应将配置文件的 <startup> 元素中的 useLegacyV2RuntimeActivationPolicy 特性设置为 true。 这将会恢复到 .NET Framework 4 之前的默认加载行为,即,使用最新的受支持的 .NET Framework 版本。
指定程序集版本
如果没有应用程序配置文件,对于包含要从 COM 激活的类型的程序集,运行时将加载 Windows 注册表中注册的最新版本。 您可以使用应用程序配置文件中的 <bindingRedirect> 元素来定向应用程序,以绑定到早期的程序集版本。 有关说明,请参见重定向程序集版本。
通过在一个 <dependentAssembly> 元素中包含多个 <bindingRedirect> 元素,可以重定向多个程序集版本。