.NET Framework 4 的迁移指南

更新:2010 年 8 月

如果使用早期版本的 .NET Framework 创建了应用程序,则通常能将该应用程序轻松升级到版本 4。 在 Visual Studio 2010 中打开项目。 如果已在早期版本中创建项目,则**“Visual Studio 转换向导”**将自动打开。 有关升级项目的更多信息,请参见如何:升级在 Visual Studio 早期版本中创建的项目

但是,.NET Framework 中的某些更改需要更改您的代码。 您可能还希望利用 .NET Framework 4 中的新增功能。 通常,针对新版本的 .NET Framework 来对应用程序进行这些类型的更改的过程称作“迁移”。 如果应用程序不必迁移,则可以在 .NET Framework 4 中运行应用程序而无需重新编译;有关更多信息,请参见如何:配置 .NET Framework 4 运行时。 有关兼容性测试方案,请参见 .NET Framework 4 Application Compatibility Walkthrough(.NET Framework 4 应用程序兼容性演练)。

本主题介绍与将应用程序从 .NET Framework 3.5 迁移到 .NET Framework 4 这一过程有关的任务、资源和问题。

迁移资源

在迁移应用程序之前,请查看以下文档:

迁移问题概述

下表提供了 .NET Framework 4 的迁移问题中详细描述的关键问题的摘要。 其中包括为解决以前的问题而进行的修复以及有助于执行迁移任务的改进。

技术

应用程序开发和资源

配置和其他注意事项

控件和图形

安全性

互操作性

相关类型和成员

ASP.NET 和 Web

对不同版本的子 Web 应用程序的支持。

  • 对浏览器定义文件的更新。

  • 对 HTML 窗体和请求、编码语法以及缓存策略的更改。

  • 更严格的页分析。

  • 对已删除的 System.Web.Mobile.dll 的引用。

  • .config 文件更新。

  • URL 路由和 Web 文件夹名称。

  • 新客户端 ID 模式。

  • 新呈现功能。

  • XHTML 1.1 遵从性。

  • 已停止对浏览器中承载的 Windows 窗体控件的支持。 已从 .NET Framework 中删除 IEHost.dll 和 IEExec.dll。

  • Passport 身份验证已由 Live ID SDK 取代。

  • 更改了哈希算法以进行数据加密。

无。

HttpBrowserCapabilities, HttpUtility, HttpServerUtility, Menu, MenuRenderingMode, ControlRenderingCompatibilityVersion, PopOutImageUrl, StaticPopOutImageUrl, DynamicPopOutImageUrl, AppendHeader(String, String), PassportIdentity, HttpRequest, FilePath, AppRelativeCurrentExecutionFilePath, CurrentExecutionFilePath, PathInfo

核心

  • 有关进程内并行执行的注意事项。

  • 程序集加载和哈希算法改进。

  • 全局程序集缓存位置更改。

  • C# 代码编译器类已由 CodeDOM 替代。

  • Gacutil.exe(全局程序集缓存工具)不再支持 shell 插件查看器。

  • .config 文件命名。

  • 日期和时间属性目前使用操作系统规则而非 .NET Framework 数据。

  • 损坏的进程状态的异常处理方面的更改。

无。

  • 新安全模型。

  • 已弃用某些承载激活类型和成员。

  • JIT 调试更改。

  • 错误平台调用现在会导致应用程序失败。

  • 本地应用程序(如 Windows 任务管理器)再也看不到托管库。

日期和时间:LocalNowTimeSpan

全球化:CurrencyEnglishNameLongDatePatternPMDesignatorCultureTypesFrameworkCulturesWindowsOnlyCultures

异常:HandleProcessCorruptedStateExceptionsAttributeExecutionEngineException

反射:HashAlgorithmNoneGetReferencedAssemblies()ProcessModuleCollectionDeclaringType

数据

承载改进。

  • 查看映射改进。

  • 行编辑改进。

  • POCO 支持。

  • 针对批处理二进制内容、标头、用于删除请求的更改拦截器、合并操作、URI 转义、基础流和 JSON 读取器的数据服务支持。

  • 更有用的异常。

无。

无。

无。

数据集和 SQL 客户端:IRelatedEndIEntityWithRelationshipsDataViewPropertyChangedRejectChanges()DataSetPrepare()

实体框架:Detach(Object)SaveChanges()

LINQ to SQL:EntitySet<TEntity>ListChanged

WCF 数据服务:TimeoutExceptionDataServiceRequestExceptionMergeOptionAppendOnlyPreserveChangesOnStartProcessingRequest(ProcessRequestArgs)ServiceOperation

全球化

从操作系统(自 Windows 7 开始)获取的区域性信息。

  • 新的非特定区域性和特定区域性以及名称更改。

  • 增强的 Unicode 5.1 标准支持。

无。

无。

无。

无。

WCF

  • 服务承载配置更改。

  • 针对跨配置文件合并的支持。

  • 过时的区域性类型。

无。

无。

无。

无。

WPF

  • 可冻结的资源词典。

  • 资源文件位置选项。

  • XPS 查看器 Essentials Pack 安装。

  • 特性只能包含一个句点。

  • 标记扩展修复。

  • 更有用的异常。

  • 位图帧能更好地呈现下载的图像。

  • 子窗口不浮动。

  • 针对菜单的子对象、离开屏幕的容器、滚动块处理和树视图层次结构的改进的功能。

  • 菜单和弹出窗口中的 ClearType。

  • 新 UI 自动化接口。

  • CommonDialog.ShowStream 和 Microsoft.Win32.FileDialog 在同一线程上执行。

  • 框架导航(没有不必要的事件)。

  • 在布局处理过程中可多次调用 Popup 委托。

  • 属性值可保留到影响其值的触发器之后。

  • 已清除不必要的重新布局(已失效)。

  • 现在可以绑定基于视图模型的命令实例。

  • 对未使用的组合键进行了模糊处理。

  • WPF 浏览器应用程序不再处理键事件。

  • 更多窗口样式设置。

  • 文本框中的自动剪切和粘贴可在部分信任下提供更高的安全性。

无。

应用程序:AllowsTransparencyWindowState

控件:CollectionViewSetCurrentValue(DependencyProperty, Object)Copy()Cut()

图形:DropShadowEffectBlurEffectShaderEffectDownloadFailedInputBindingDeadCharProcessedDeadCharProcessedKey

UI 自动化:TreeViewAutomationPeerTreeViewItemAutomationPeerIItemContainerProviderISynchronizedInputProviderIVirtualizedItemProvider

XAML:ProvideValue(IServiceProvider)

XML

无。

  • 正确克隆了 Chameleon 架构。

  • 实体引用只转换为实体一次。

  • 命名空间解析器修复。

  • 读取器和 XPath 导航修复。

  • 架构集可包含其他集。

无。

无。

无。

架构和转换:XmlReaderCreateReader()XPathNavigatorXmlSchemaSetLoad(XmlReader)

验证:ReadContentAs(Type, IXmlNamespaceResolver)IXmlNamespaceResolverCreate(Stream)

写入:WriteEntityRef(String), XmlWriter, None

请参见

概念

.NET Framework 4 中的新增功能

.NET Framework 版本和依赖关系

其他资源

.NET Framework 4 的迁移问题

从 .NET Framework 1.1 版迁移

如何:配置 .NET Framework 4 运行时

.NET Framework 的版本兼容性

.NET Framework 中的过时功能

.NET Framework 4 中的新增类型和成员

.NET Framework Version and Assembly Information(.NET Framework 版本和程序集信息)

Microsoft .NET Framework Support Lifecycle Policy(Microsoft .NET Framework 支持生命周期策略)

修订记录

日期

修订记录

原因

2010 年 8 月

添加了有关 Web 浏览器中的承载控件、编译器类和 CodeDOM 以及全局程序集缓存查看器的问题。

信息补充。