如何:配置应用以支持 .NET Framework 4 或更高版本

托管公共语言运行时(CLR)的所有应用都需要启动或 激活 CLR 才能运行托管代码。 通常,.NET Framework 应用在生成的 CLR 版本上运行,但可以使用应用程序配置文件(有时称为应用.config 文件)更改桌面应用的此行为。 但是,不能使用应用程序配置文件更改 Windows 应用商店应用或 Windows Phone 应用的默认激活行为。 本文介绍如何使桌面应用能够在 .NET Framework 的另一个版本上运行,并提供有关如何面向版本 4 或更高版本的示例。

应用运行的 .NET Framework 版本按以下顺序确定:

  • 配置文件。

    如果应用程序配置文件包含 <指定一个或多个 .NET Framework 版本的受支持的Runtime> 条目,并且其中一个版本存在于用户的计算机上,则应用在该版本上运行。 配置文件按列出的顺序读取 <支持的Runtime> 条目,并使用用户计算机上列出的第一个 .NET Framework 版本。 (将 <requiredRuntime> 元素 用于版本 1.0。)

  • 已编译的版本。

    如果没有配置文件,但应用所构建的 .NET Framework 版本存在于用户的计算机上,则应用在该版本上运行。

  • 已安装最新版本。

    如果应用生成的 .NET Framework 版本不存在,并且配置文件未在元素中<supportedRuntime>指定版本,则应用会尝试在用户计算机上存在的最新版本的 .NET Framework 上运行。

    但是,.NET Framework 1.0、1.1、2.0、3.0 和 3.5 应用不会在 .NET Framework 4 或更高版本上自动运行,在某些情况下,用户可能会收到错误,并可能提示安装 .NET Framework 3.5。 激活行为也可能取决于用户的作系统,因为不同版本的 Windows 系统包括不同版本的 .NET Framework。 如果你的应用同时支持 .NET Framework 3.5 和 4 或更高版本,我们建议你在配置文件中使用多个条目来指示这一点,以避免 .NET Framework 初始化错误。 有关详细信息,请参阅 版本和依赖项

你可能还希望将 .NET Framework 3.5 应用配置为在 .NET Framework 4 或更高版本上运行,甚至在安装了 .NET Framework 3.5 的计算机上,以利用版本 4 及更高版本中的性能改进。

重要

建议始终在支持的每个 .NET Framework 版本上测试应用。 有关升级应用程序以支持更高版本的 .NET Framework 版本的信息,请参阅 版本兼容性

有关修改 .NET Framework 1.0 和 1.1 应用以支持 Windows 7 和 Windows 8 的信息,请参阅 从 .NET Framework 1.1 迁移

在 .NET Framework 4.x 上运行应用

  1. 添加或查找 .NET Framework 项目的配置文件。

    应用的配置文件是位于同一目录中的 XML 文件,其文件名与应用相同,但扩展名相同 .config 。 例如,对于命名 MyExecutable.exe的应用,应用程序配置文件命名 MyExecutable.exe.config

    若要在 Visual Studio 中添加配置文件,请找到菜单栏,然后选择“ 项目>添加新项”。 从左窗格中选择 “常规 ”,然后选择“ 配置文件”。 将配置文件 应用.config命名。这些菜单选项不适用于 Windows 应用商店应用,因为你无法更改该平台上的激活策略。

  2. 按如下所示将 <supportedRuntime> 元素添加到应用程序配置文件:

    <configuration>
      <startup>
        <supportedRuntime version="version"/>
      </startup>
    </configuration>
    

    version 属性指定与应用支持的 .NET Framework 版本一致的 CLR 版本。 使用以下字符串:

    • .NET Framework 1.0:“v1.0.3705”
    • .NET Framework 1.1:“v1.1.4322”
    • .NET Framework 2.0、3.0 和 3.5:“v2.0.50727”
    • .NET Framework 4 及更高版本:“v4.0”

    可以按首选项顺序添加多个 <受支持的Runtime> 元素,以指定对 .NET Framework 的多个版本的支持。

下表演示了计算机上安装的应用程序配置文件设置和 .NET Framework 版本如何确定运行 .NET Framework 3.5 应用的版本。 这些示例特定于 .NET Framework 3.5 应用程序,但可以使用类似的逻辑来面向使用早期 .NET Framework 版本生成的应用程序。 请注意,.NET Framework 2.0 版本号(v2.0.50727)用于在应用程序配置文件中指定 .NET Framework 3.5。

应用.config 文件配置 在安装了版本 3.5 的计算机上 在安装了版本 3.5 和 4 或更高版本的计算机上 在安装了版本 4 或更高版本的计算机上
None 在 3.5 上运行 在 3.5 上运行 显示提示用户安装正确版本的错误消息*
<supportedRuntime version="v2.0.50727"/> 在 3.5 上运行 在 3.5 上运行 显示提示用户安装正确版本的错误消息*
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
在 3.5 上运行 在 3.5 上运行 在 4 或更高版本上运行
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
在 3.5 上运行 在 4 或更高版本上运行 在 4 或更高版本上运行
<supportedRuntime version="v4.0"/> 显示提示用户安装正确版本的错误消息* 在 4 或更高版本上运行 在 4 或更高版本上运行

* 有关此错误消息和避免方法的详细信息,请参阅 .NET Framework 初始化错误:管理用户体验

另请参阅