确定要加载的运行时版本
公共语言运行时使用以下信息确定要为应用程序加载的运行时版本:
可用运行时版本。
应用程序支持的运行时版本。
支持的运行时版本
运行时使用应用程序配置文件和可迁移可执行 (PE) 文件头确定应用程序支持的运行时版本。 如果不存在应用程序配置文件,运行时就加载应用程序的 PE 文件头中指定的运行时版本(若该版本可用)。
如果存在应用程序配置文件,运行时根据下面过程的结果确定要加载的适当的运行时版本:
运行时检查应用程序配置文件中的 <supportedRuntime> 元素 元素。 如果 <supportedRuntime> 元素中指定了一个或多个支持的运行时版本,则运行时加载第一个 <supportedRuntime> 元素指定的运行时版本。 如果这一版本不可用,则运行时检查下一个 <supportedRuntime> 元素,并尝试加载所指定的运行时版本。 如果这一运行时版本仍不可用,则检查后面的 <supportedRuntime> 元素。 如果没有任何受支持的运行时版本,则运行时将无法加载运行时版本,同时向用户显示一条消息(参见第 3 步)。
运行时读取应用程序可执行文件的 PE 文件头。 如果 PE 文件头指定的运行时版本可用,则运行时加载这一版本。 如果指定的运行时版本不可用,则运行时搜索 Microsoft 已认定其与 PE 标头中的运行时版本兼容的运行时版本。 如果未发现这样的版本,则接着执行步骤 3。
运行时显示一条消息,指出应用程序支持的运行时版本不可用。 没有加载运行时。
注意 可以使用注册表项 HKLM\Software\Microsoft\.NETFramework 下的 NoGuiFromShim 值或使用环境变量 COMPLUS_NoGuiFromShim 来取消显示此消息。例如,可以为一般不与用户进行交互的应用程序(如无人参与的安装或 Windows 服务)取消显示该消息。取消显示该消息之后,运行时会在事件日志中写入一条消息。将注册表值 NoGuiFromShim 设置为 1 可以为计算机上的所有应用程序取消显示此消息。另外,也可以将 COMPLUS_NoGuiFromShim 环境变量设置为 1,为在特定用户上下文中运行的应用程序取消显示该消息。
注意 |
---|
加载一个运行时版本后,程序集绑定重定向可以指定加载某个 .NET Framework 程序集的不同版本。这些绑定重定向只影响被重定向的特定程序集。 |