微软.NET 4.0完整框架和客户端配置文件之间的区别

359

微软.NET Framework 4.0完整安装程序(32位和64位)大小为48.1 MB,客户端框架安装程序大小为41.0 MB。提取后的安装文件分别为237 MB和194 MB,安装后分别为537 MB和427 MB。

这是110 MB的差异。这两个包之间有什么区别?

何时最好安装客户端框架而不是完整的.NET Framework?


53
7.1 MB的差异?由于微软认为这是值得拆分成两个部分的,开发人员对编译错误感到沮丧?太棒了。 - JYelton
18
这是一个旧的讨论串,但是随着.NET Framework 4.5的推出,客户端框架已被停用。 - bart s
14
开发者因为微软认为7.1MB的差异值得拆分而感到沮丧?这只是安装程序。解压后,它会多出43MB。一旦安装完成,它就会多出110MB。嵌入式或低配置系统可以忘记了;成本和架构并不是Rπ不支持Windows的唯一原因。 - Synetech
4个回答

365

.NET Framework 4客户端框架RTM的新功能解释了许多差异:

何时使用.NET4客户端框架和何时使用.NET4完整框架?
NET4客户端框架:
对于所有客户端桌面应用程序(包括Windows Forms和WPF应用程序),始终使用NET4客户端框架。

NET4完整框架:
如果您的应用程序需要的功能或程序集未包含在客户端配置文件中,则仅针对NET4完整进行目标设置。 这包括:

  • 如果您正在构建服务器应用程序,例如:
    o ASP.Net 应用程序
    o 基于服务器端 ASMX 的 Web 服务
  • 如果您使用旧版客户端方案,例如:
    o 使用已在NET4中弃用且未包含在客户端框架中的System.Data.OracleClient.dll。
    o 使用旧版 Windows Workflow Foundation 3.0 或 3.5 (WF3.0, WF3.5)
  • 如果您定位于开发人员场景并需要工具(例如MSBuild)或需要访问设计程序集(例如System.Design.dll)

然而,根据MSDN上的说明,这对于 >=4.5 不再相关:

从.NET Framework 4.5开始,客户端配置文件已停用,仅提供完整的可分发包。 .NET Framework 4.5提供的优化,例如更小的下载大小和更快的部署,已经消除了单独部署包的需要。单个可分发流程简化了安装过程,并简化了应用程序的部署选项。


12
这篇博客还讨论了不同框架文件的大小:http://www.hanselman.com/blog/TowardsASmallerNET4DetailsOnTheClientProfileAndDownloadingNET.aspx - sourcenouveau

56

在公司内部,你应该部署“客户端配置文件”而不是“完整的框架”,这通常只有一个情况:你希望明确拒绝某些.NET功能在客户端计算机上运行。唯一真正的情况是拒绝在公司的客户机上运行ASP.NET,例如出于安全原因或现有的企业政策。

在客户端计算机上节省小于8 MB的空间不能成为在公司中部署“客户端配置文件”的严重理由。“完整的框架”后来必须在公司中部署的风险比每个客户端8 MB的成本更高。


13
当然,我们都在谈论同样的事情。两个方案之间的区别是众所周知的。我只想清楚地表达,使用“客户端配置文件”的唯一重要原因是在客户端计算机上拒绝使用ASP.NET。所有其他技术细节并不真正重要。 - Oleg
1
存储少于8 MB...那只是安装程序;一旦安装,它会增加110MB。 - Synetech
2
在这个1Tb驱动器时代,110Mb-8Mb有谁在乎呢? - Liam
1
@Oleg,如果你的回答是正确的,那么为什么.NET 4.5及以上版本不再支持客户端配置文件呢? - Pacerier
@cosmo0:我认为“客户端配置文件”而不是“完整框架”的主要原因是当一个人想在客户机上拒绝使用ASP.NET时。在我看来,减少安装源的大小并不是一个真正的问题。我的所有客户都只安装了完整的框架。所以我理解现在只有一个完整的.Net 4.5安装程序和一个.Net 4.6安装程序(请参见KB3045557此处)。“客户端配置文件”已经死了。 - Oleg
显示剩余4条评论

48

在 MSDN 上提供了一个程序集列表,位于.NET Framework 客户端配置文件中的程序集(列表太长,此处不包含)。

如果您更感兴趣的是功能,则 MSDN 上的.NET Framework 客户端配置文件列出了以下内容:

  • 公共语言运行时 (CLR)
  • ClickOnce
  • Windows 窗体
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • 实体框架 (Entity Framework)
  • Windows 工作流基础 (Windows Workflow Foundation)
  • 语音
  • XSLT 支持
  • LINQ to SQL
  • 实体框架和 WCF 数据服务的运行时设计库
  • 托管可扩展性框架 (Managed Extensibility Framework,MEF)
  • 动态类型
  • 并行编程特性,例如任务并行库 (Task Parallel Library,TPL)、并行 LINQ (PLINQ) 和协调数据结构 (CDS)
  • 客户端应用程序调试

以下内容不包括在内:

  • ASP.NET
  • 高级 Windows Communication Foundation (WCF) 功能
  • .NET Framework 数据提供程序 for Oracle
  • 用于编译的 MSBuild

20

Cameron MacFarland说得很好。

我想补充一下,.NET 4.0客户端配置文件将包含在Windows Update和未来的Windows版本中。预计大多数计算机都将有客户端配置文件,而不是完整的配置文件。如果您正在进行面向消费者的业务(B2C)销售,请不要低估这个事实。


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