从MSDN page开始,关于.NET Framework版本,我们知道每个版本都包含以前版本的所有功能。
与以前版本的.NET Framework不同,如果未安装以前版本,.NET Framework 4不允许使用以前版本的.NET Framework构建的应用程序向前迁移并在其上运行
为什么?
答案 0 :(得分:7)
正如在其他答案中已经解释的那样,它们是不同的运行时,因此默认情况下不支持应用程序,因为未安装.NET 3.5使用的2.0运行时。
但是,您可以将以下内容添加到应用程序配置中以强制应用程序使用.NET 4.0运行时:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
然而,由于不同运行时之间的更改,这可能会导致应用程序崩溃,因此最安全的是使用应用程序所针对的运行时。
答案 1 :(得分:3)
答案 2 :(得分: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,则会失败。
答案 3 :(得分:1)