托管公共语言运行时(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 上运行应用
添加或查找 .NET Framework 项目的配置文件。
应用的配置文件是位于同一目录中的 XML 文件,其文件名与应用相同,但扩展名相同 .config 。 例如,对于命名 MyExecutable.exe的应用,应用程序配置文件命名 MyExecutable.exe.config。
若要在 Visual Studio 中添加配置文件,请找到菜单栏,然后选择“ 项目>添加新项”。 从左窗格中选择 “常规 ”,然后选择“ 配置文件”。 将配置文件 应用.config命名。这些菜单选项不适用于 Windows 应用商店应用,因为你无法更改该平台上的激活策略。
按如下所示将 <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 初始化错误:管理用户体验。