注意:迁移到.NET 4.0 会有问题

  • Abel Avram
  • 侯伯薇

2010 年 5 月 7 日

话题:.NET语言 & 开发架构

日前,微软发布了一个列表,其中完整描述了从.NET Framework 3.5 SP1 迁移到.NET 4.0 会出现的问题。该列表包含了六个方面的变化:核心、ASP.NET、 ADO.NET、WCF, WPF 以及 XML。

如果你是在同一台计算机上安装了.NET Framework 4.0,那么在.NET 3.5 下编译的.NET 应用程序运行时不会有任何问题,因为这两个框架是并行安装,彼此不会产生影响。但是,如果你在.NET 4.0 下对应用程序重新进行了编译,那么就会出问题,因为最新的微软运行时在做出改善的同时也引入了一些破坏性的改变。

这些改变表现在六个方面:

该列表相对较长,所以在此只会列出其中的一部分,如下:

核心

应用程序配置文件名称的改变 “如果你的应用程序配置文件名是 application-name.config,那么需要将其重命名为 application-name.exe.config。例如,你需要将 MyApp.config 重命名为 MyApp.exe.config。”
关闭了代码访问策略。 参见代码访问安全策略的兼容性和迁移

ASP.NET

由于 CAS 策略的改变,在全局缓存中运行受信代码的应用程序可能会失败。 参见ASP.NET 4 应用程序中的代码访问安全
在安装了.NET 4.0 之后,安装在 IIS 6.0 上的 ASP.NET 2.0 程序可能会出现错误。 要解决这个问题,你需要禁用 ASP.NET 4.0,或者将 ASP.NET 2.0 的应用移动到未安装 ASP.NET 4 的 IIS 实例中。
ASP.NET 4.0 中的页面解析器更加严格。 你将必须修正由无效标签所产生的错误。

数据

WCF

配置文件 WCF 支持配置文件之间的合并。
服务托管

你将再无法通过在属性定义上添加 allowDefinition='MachineToApplication'来在服务级别指定 <serviceHostingEnvironment> 配置选项。在服务级别指定 <serviceHostingEnvironment> 元素在技术上是错误的,并且会导致不一致的行为。

WPF

XML

查看英文原文:The Complete List of Migration Issues Upgrading to .NET 4.0

.NET语言 & 开发架构