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

简介:

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

如果你是在同一台计算机上安装了.NET Framework 4.0,那么在.NET3.5下编译的.NET应用程序运行时不会有任何问题,因为这两个框架是并行安装,彼此不会产生影响。但是,如果你在.NET4.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数据服务不会再为读写操作关闭底层的数据流。
事件 现在,(TEntity的) System.Data.Linq.EntitySet 除了会在载入的时候引发事件之外,如果(TEntity的) EntitySet 被卸载,那么在执行增加和删除操作的时候还会引发ListChanged事件。
查询 在LINQ to SQL 查询中,Skip(0)不会再被忽略。从而导致拥有这个方法的查询的行为会有所不同。例如,在某些情况下,需要使用带有Skip(0)的OrderBy子句,现在,如果没有包含OrderBy子句,那么查询就会抛出NotSupportedException异常。

WCF

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

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

WPF

异常处理 “为了能够更早地侦测到错误,WPF会抛出TargetInvocationException并且对重要的异常——如NullReferenceExceptionOutOfMemoryExceptionStackOverflowExceptionSecurityException——设定InnerException属性,而不会捕获最原始的异常”
窗口样式 “如果你试图将WindowStyle设置为一个值而不是None,而此时AllowsTransparency的值为true且WindowState的值是Minimized,那么就会抛出InvalidOperationException异常”;
对话框 “为了提高可靠性,CommonDialog.ShowDialog方法会在创建Microsoft.Win32.FileDialog控件的同一线程中调用”;

XML

命名空间解析器 XmlReader.ReadContentAs方法不会再忽略传递给它的IXmlNamespaceResolver 解析器”;
空格 “为了防止在你创建reader时数据的丢失,XmlReader.Create方法不再会删除重要的空格”;

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

 

 

本文转自温景良(Jason)博客园博客,原文链接:http://www.cnblogs.com/wenjl520/archive/2010/05/09/1730882.html/,如需转载请自行联系原作者

相关文章
|
Ubuntu IDE 前端开发
把.Net开发环境迁移到Linux上去
把.Net开发环境迁移到Linux上去
230 0
|
Java API C#
Unity 引擎开始从 Mono 迁移到 .NET CoreCLR
Unity 引擎开始从 Mono 迁移到 .NET CoreCLR
471 0
Unity 引擎开始从 Mono 迁移到 .NET CoreCLR
|
SQL 机器学习/深度学习 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
- 状态 - 自动变更检测 - 不查询删除和更新 - 并发
227 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
|
弹性计算 运维 监控
.Net Core 2.1 MVC Web应用迁移到函数计算 custom runtime
前言 Custom Runtime 就是自定义的执行环境, 用户基于 Custom Runtime 可以完成以下目标: 可以随心所欲持定制个性化语言执行环境(例如 golang、lua、ruby)以及各种语言的小版本(例如python3.7、Nodejs12)等,打造属于自己的自定义runtime; 现有的 web 应用或基于传统开发 web 项目基本不用做任何改造,即可将项目一键迁移到函数计算平台。
1469 0
|
前端开发 NoSQL .NET
一起谈.NET技术,重构TekPub——从ASP.NET MVC框架迁移到Ruby on Rails
  TekPub是一个面向开发人员的站点,致力于为开发人员提供一系列主题的在线培训,主题范围非常广泛,从微软的O/R Mapping框架Microsoft Entity Framework,到如何使用Ruby on Rails技术编写自己的日志引擎等内容都有涉及。
1596 0
|
Ubuntu Linux 开发工具
把.Net开发环境迁移到Linux上去
.Net Core发布之前,多年来,.Net程序员的开发环境都在Windows上。 三街第一帅的我,虽然上班的8小时一直在windows上撸C#,但是下班时间一般都在搞其他的乱七八糟的东西,比如写写小游戏啊。
2500 0
|
API C# Windows
分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer )
原文:分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
1102 0
|
.NET Linux 程序员
从博客园博问站点迁移ASP.NET Core展望.NET Core
今年年初,博客园的博问系统就已经迁移到了 ASP.NET Core on Linux并发布上线发布。 我们看到博客园发表官方博客-- .NET跨平台之旅:博问站点迁移至ASP.NETCore on Linux并发布上线 访问地址:http://www.cnblogs.com/cmt/p/6437901.html   博客园在文章末尾说: 虽然在迁移过程中遇到了很多问题,但是我们的最大体会是:对 .NET Core 的了解越多,你就越喜欢它,这才是真正的魅力。
1194 0