2

MSDN 页面,关于 .NET Framework 版本,我们知道每个版本都包含以前版本的所有功能。

与先前版本的 .NET Framework 不同,如果未安装先前版本,.NET Framework 4 不允许使用先前版本的 .NET Framework 构建的应用程序向前迁移并在其上运行

这是为什么?

4

4 回答 4

7

正如其他答案中已经解释的那样,它们是不同的运行时,因此默认情况下不支持该应用程序,因为未安装 .NET 3.5 使用的 2.0 运行时。

但是,您可以将以下内容添加到应用程序配置中以强制应用程序使用 .NET 4.0 运行时:

<startup>
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

然而,由于不同运行时之间的变化,这可能会导致应用程序崩溃,因此最安全的是使用应用程序所针对的运行时。

于 2012-07-13T17:07:51.630 回答
3

与先前版本的 .NET Framework 不同,如果未安装先前版本,.NET Framework 4 不允许使用先前版本的 .NET Framework 构建的应用程序向前迁移并在其上运行

它们可以,但您必须明确允许它使用 .NET 4 运行时运行。由于该框架有一个新的运行时,如果您的应用程序针对的是旧版本,您必须选择允许这样做。

您可以通过让您的应用配置指定正确的supportedRuntime变量来做到这一点,即:

<configuration>
   <startup>
      <supportedRuntime version="v4.0"/>
      <supportedRuntime version="v2.0.50727"/>
   </startup>
</configuration>

没有这个,运行时会:

如果应用程序配置文件中不存在该元素,则使用用于构建应用程序的运行时版本。

因为您使用 CLR 2 构建,所以只允许 2.0 运行时,因此如果用户没有 .NET 3.5sp1,它会失败。

于 2012-07-13T17:11:21.620 回答
3

默认情况下,它们需要不同的运行时。

3.5 应用程序的运行时是 2.0 运行时,它与 4.0 运行时不兼容。

您可以按照 João Angelo 在他的回答中解释的那样重新定位。

于 2012-07-13T17:03:47.363 回答
1
  • .NET 2.0
  • .NET 3.x 基于 .NET 2.0,因此两者都需要安装 .NET 2.0
  • .NET 4.0 使用自己的 .NET 运行时版本,因此您可以独立安装它
  • .NET 4.5更新4.0 的运行时
于 2012-07-13T17:06:41.800 回答