.NET框架和版本兼容性

3
如果.NET应用程序(窗体/ Web)是使用Framework 2.0构建的,它能在只安装了版本4.0的框架的计算机上运行吗?
例如,我安装了一个全新的Win Server 2003,并更新了系统到.NET框架的v4.0(然后系统只有.NET的1.0、1.1和4.0),但在安装SQL Server 2008 R2 Express时,设置要求再安装另一个v3.5 SP1的框架。
2个回答

5

是的,您的2.0应用程序将在具有4.0框架的计算机上运行。.NET 4.0具有向后兼容性。

更多信息请查看此msdn 文章

MSDN表示

然而,在实践中,这种兼容性可能会因.NET Framework中的微不足道的更改和编程技术的更改而被破坏。例如,.NET Framework 4中的性能改进可能会暴露出先前版本中未发生的竞态条件。同样,使用硬编码路径到.NET Framework程序集,使用特定版本的.NET Framework进行相等比较以及使用反射获取私有字段的值都不是向后兼容的做法。此外,每个.NET Framework版本都包括修复错误和安全相关更改,这些更改可能会影响某些应用程序和组件的兼容性。

但是,您需要在2.0应用程序配置文件中将supportedruntime目标设置为4.0。


.NET 中唯一的破坏性变化发生在 1.1 和 2.0 之间。 - Jay
1
几乎没有什么 重大 的破坏性变化,但是2.0 -> 4.0可能会有一些破坏性的变化;这也是为什么你必须选择加入的原因。 - Mark Sowul

4
您需要在app.config中添加一个条目来选择在CLRv4上运行。
<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727"  />
        <supportedRuntime version="v4.0"  />
    </startup>
</configuration>
< p >(如果不添加v2信息,则只能在v4 CLR上运行!)< /p >
(如果您没有添加v2信息,则该程序仅能在v4 CLR上运行!)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接