.NET Framework 4 与 .NET Framework 4 Client Profile

为什么要讨论.NET Framework 4 与 .NET Framework 4 Client Profile 不知道大家遇到过类似的问题不,我先描述一下我遇到的问题:用Microsoft Visual Studio 2010开发项目的时候,需要引入别的现场的DLL(A.dll)了,在引入之前一点问题都没有,能编译成功,也能运行成功。可是引入A.dll后就会报错,编译都通不过,而A.dll你以前也调用过绝对没有错误。到底是哪里的问题呢?答案就是:是.NET Framework 4 Client Profile惹的祸。 我们Visual Studio 2010开发是默认的情况下建立的windows form程序默认的运行平台都是.NET Framework 4 Client Profile。如何检验呢? 1.我们在Visual Studio 2010里面新建一个项目,其过程如下图: net4   上图是默认的情况,net framework默认的选择也是是.NET Framework 4 ,然后点击OK后建立项目成功,但是你去项目中右键属性,查看一下,结果确如下图: net4client   好了结果出来了,因此我们在Visual Studio 2010里面建立的新项目,都取默认值的情况下起运行平台都为.NET Framework 4 Client Profile。 既然引起错误的是.NET Framework 4 Client Profile,那么什么是.NET Framework 4 Client Profile? .NET Framework 4 Client Profile 是 .NET Framework 4 已针对客户端应用程序进行优化的一个子集。它提供了适用于大多数客户端应用程序的功能,包括 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF) 和 ClickOnce 功能。这使得以 .NET Framework 4 Client Profile 为目标的应用程序的部署速度加快且安装包变小。
  1. .NET Framework 4 Client Profile 包含开发客户端应用程序所需的功能,其中包括:
  • common language runtime (CLR)
  • ClickOnce
  • Windows Forms
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Entity Framework
  • Windows Workflow Foundation
  • 语音
  • XSLT 支持
  • LINQ to SQL
  • 适用于Entity Framework和 WCF 数据服务 的运行时设计库。
  • Managed Extensibility Framework (MEF)
  • 动态类型
  • 并行编程功能(例如任务并行库 (TPL))、并行 LINQ (PLINQ) 和协作数据结构 (CDS)
  • 调试客户端应用程序
2.Net Framework 4 Client Profile 不包括以下功能。必须安装 .NET Framework 4 才能在应用程序中使用这些功能:
  • ASP.NET
  • 高级 Windows Communication Foundation (WCF) 功能
  • Oracle .NET Framework 数据提供程序
  • 用于编译的 MSBuild
为什么会有Net Framework 4 Client Profile? 因为以 .NET Framework 4 Client Profile 为目标的应用程序通常具有更小的下载大小和更快的安装时间,从而可以改进部署体验。以 .NET Framework 4 Client Profile 为目标的应用程序有一个较小的再分发软件包,该软件包可在用户计算机安装最小的一组客户端程序集,而无需安装完整版的 .NET Framework 4。   Client Profile是到Net Framework 4才出现吗? 答案是否定的,.NET Framework 3.5 SP1 中就引入了 .NET Framework Client Profile 来改进 .NET Framework 的部署和安装。 .NET Framework 3.5 SP1 Client Profile 和 .NET Framework 4 Client Profile 之间的差异
NET Framework 3.5 SP1 Client Profile .NET Framework 4 Client Profile
仅 Web 安装。 本地软件包和 Web 安装。
仅支持未安装 Microsoft .NET Framework 早期版本的 Microsoft Windows XP SP2 或 SP3 和 x86 体系结构。 .NET Framework 4 支持的所有平台和 CPU 架构(IA64 除外)。
“添加或删除程序”中的单个项。安装完整版 .NET Framework 时,它会替换“程序和功能”中的“Client”,但不能还原。 .NET Framework 的一部分。.NET Framework 由 .NET Framework 4 Client Profile 和 .NET Framework 4 Extended 组件构成,这两个组件分别存在于“程序和功能”中。
Windows Update 会将其升级到完整版 .NET Framework。 独立组件。
  • 可以单独维护。
  • 不需要 .NET Framework 的 .NET Framework 4 Extended 组件。
Visual Studio 2010 那些程序我们建立时其运行目标平台是.NET Framework 4 Client Profile ? Visual Studio 2010 中以 .NET Framework 4 Client Profile 为目标的几个项目模板。以下是 Visual Studio 2010 中默认以 .NET Framework 4 Client Profile 为目标的项目模板的列表。默认情况下,所有其他项目都以 .NET Framework 4 为目标。

Windows

  • WPF 应用程序
  • WPF 浏览器应用程序
  • WPF 自定义控件库
  • WPF 用户控件库
  • Windows 窗体应用程序
  • Windows 窗体控件库
  • 控制台应用程序
  • 空项目
  • Windows 服务

Office

  • 所有 Office 2007 和 Office 2010 项目模板

WCF

  • WCF 服务库

工作流

  • 活动设计器库
  • 活动库
  • 工作流控制台应用程序

Visual F#

  • F# 应用程序
  • F# 教程
也就是用Visual Studio 2010建立的上述程序默认情况下都是以.NET Framework 4 Client Profile为目标平台的。 .NET Framework 4 与 .NET Framework 4 Client Profile有什么区别呢?
Client Profile 是 .NET framework 的子集,针对客户端应用程序进行了优化;也就是Client profile的可供引用的类库不是全部的.NET Framework 4,因此就可能出现我们第一个问题(为什么要讨论.NET Framework 4 与 .NET Framework 4 Client Profile)的所出现的情况。既然这样了,那么我们的解决方案也就有了,手动的把应用程序的目标平台改为.NET Framework 4就ok了。当然,这样改的后果你要承受,那就是安装包变大,而且运行的目标平台必须安装有完整的.NET Framework 4,而不仅仅是 .NET Framework 4 Client Profile,否则一样会报错。
Visual Studio 2012中不会出现会不会出现上面的问题呢?
答案是不会。从开始 .NET Framework 4.5,客户端配置文件中中断,并且只有完整的可再发行组件包程序可用。.NET Framework 4.5提供的优化,例如更小的下载大小,和更快的部署,不需要单独程序部署包。单个再发行组件简化安装过程和简化应用程序的部署选项。在安装 .NET Framework 4.5 时,将 .NET framework 4 Client Profile 更新到完整版本的 .NET Framework。 从3.5 SP1开始,到4.0经历了两个正式版本后,微软又取消了Client Profile这个选项。 参考资料:msdn
 
posted @ 2013-04-10 07:03  娴言娴语  阅读(490)  评论(1编辑  收藏  举报