确定要加载的运行库版本
更新:2007 年 11 月
公共语言运行库使用以下信息确定要为应用程序加载的运行库版本:
可用运行库版本。
应用程序支持的运行库版本。
支持的运行库版本
运行库使用应用程序配置文件和可移植可执行 (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 程序集的不同版本。这些绑定重定向只影响被重定向的特定程序集。 |