.NET Framework 4.5完全安装如何只有50MB(因为它们不再具有客户端配置文件)?

时间:2012-10-19 16:20:37

标签: c# .net visual-studio-2010 visual-studio visual-studio-2008

(所有尺寸参考均采用打包尺寸术语,未部署/安装尺寸)

基本上,以前的.NET Framework 3.5的大小为几百MB(231.5 MB),而3.5的客户端配置文件不存在,但是,版本4.0的客户端配置文件确实存在,只有41 MB的大小,而4.0的完整安装(不是CP)的大小是48.1 MB。

现在,他们说(在问题末尾发布的链接中)大多数应用程序往往需要客户端配置文件4.0中未涵盖的类和命名空间,因此他们决定不为此执行4.5的客户端配置文件。他们引用的另一个原因是,因为他们能够将.NET Framework 4.5的完整安装版本降低到50 MB,这也减少了创建客户端配置文件版本的需要(因为.NET 4.5完全安装只有9 MB的大于.NET 4.0客户端配置文件),只有1. MB大于等效的完整安装(独立脱机安装程序)。

现在,我的问题实际上只有两部分,如下所示:

1)。究竟怎么样(请原谅我的热情)3.5及以下(3.0,2.0)版本的尺寸如何才能达到几百MB的尺寸,而4.0& 4.5版本在3.5及以下版本中修复了很多问题,并且自3.5及以下版本增加了很多功能,而打包尺寸则减少了几倍?

2)。这是客户端配置文件的最后一个词,或者我们有一天可能会看到一个.NET 4.5吗?

3)。在修复人员问题和添加如此多的功能时,4.5怎么能只有1.9 MB大于4.0?

更新: (对任何愿意的人提出潜在的第四个问题):

@Gromer提出了一个有趣的观点,即不包括语言包。由于他们需要包含1种语言,我假设它是英语,这是默认的?如果是这样的话,当大多数人甚至不知道/不了解“.NET Framework”是什么时,普通互联网用户如何为自己的使用和语言下载和安装语言包?我错过了什么或者这不重要吗?框架在口语或对话框中与最终用户通信的频率是多少?

我获得这些信息的文章如下:

http://blogs.msdn.com/b/dotnet/archive/2012/10/12/improvements-in-net-framework-setup-for-developers-it-pros-and-users.aspx

4 个答案:

答案 0 :(得分:10)

如果您查看3.5英寸独立安装程序,您会惊讶地发现有多少个子设置。

dotnetfx35_with_sp1.exe 为例:它是一个大型的231MB链式安装程序。 用

解压缩时
dotnetfx35_with_sp1.exe /x:myfolder

你得到一个240Mb的文件夹,分成几个其他文件夹:

dotNetMSP [111.2Mb] ==> x64 [45.0Mb], ia64 [36.2Mb], x86 [29.7Mb], [other] 300k 
dotNetFX20 [47.6Mb] ==> about 50/50% between 32 and 64 bit
dotNetFX30 [46.8Mb] ==> x64 [24Mb], x86 [22Mb]
dotNetFX35 [31.5Mb] ==> ia64 [12.8Mb], x64 [10.8Mb], x86 [7.7Mb]
...and some other files around...

如您所知,.NET 3.5需要.NET 3.0和.NET 2.0,这正是您在此处看到的。 即使不包括语言包,他们也必须针对许多不同的平台(从Windows XP开始)并包含大量补丁。

继续使用.NET 4.x,这些对先前框架的依赖性已被删除,同时,它们支持更少(和更新)的操作系统和平台(例如ia64支持 - 这非常重文件大小 - 现在几乎消失了)。

从我在新设置上看到的情况来看,他们也可能已经改变了他们发布框架的内部格式,可能还有一个更有效的压缩..

最后但并非最不重要的是,他们改变了许多内部架构,重写了很多东西,这反过来可能让他们删除其他旧东西......

可能没有一个特别的变化可以让它们大大减小:可能以上所有以及更多:)

只是我的2c:)

答案 1 :(得分:4)

斯科特汉塞尔曼雄辩地说:

  

为什么那个安装程序如此之大?

     

巨大的.NET下载是一回事 - 它适用于开发人员   或者可能想要重新分发设置的管理员   不仅包含整个.NET Framework,而且包含所有内容   可能的平台。它有x86,x64和ia64的安装程序。

http://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx

  

对.NET Framework的大小存在一些疑惑。    .NET Framework实际上不是200+ meg下载。

     

我使用哪种安装程序?简而言之,这就是全部内容   开发人员,ISV和管理员。

     
      
  • 脱机安装程序 - 一个可以脱机运行的单个文件,可以安装.NET Framework运行的任何系统。它完整​​,全部   平台,可离线安装。

  •   
  • 在线安装程序 - 一个2.7兆的安装程序,可以检测您需要的文件,然后下载介于10到60兆之间

  •   

This blog post详细介绍了Microsoft如何使.NET 4框架平台安装更小。具体做法是:

  

我们确定了所使用的框架功能的子集   95%以上的客户端应用程序并为其生成了一流的软件包   这种情况。结果是,除非你正在服用   ASP.NET等功能的优点,你现在可以采取依赖   在较小的框架上。

答案 2 :(得分:4)

我找不到这方面的来源,但我相信.Net framework 3.5安装程序如此之大的原因是因为它包含所有程序集的预JITed版本(在某些情况下包括不会是因为它们是在不正确的平台上使用的,因为.Net 4.0安装程序没有 - 它在安装时JIT它们(这就是为什么安装.Net framework v4.0需要这么长时间)

我还记得被告知.Net 4.5安装将更多更快,而不是JITing程序集作为安装的一部分它将在后台JIT它们在PC闲置时(但是有应用程序尝试加载的立即JIT程序集的过程,但尚未进行JIT编辑)

我现在很难找到任何这方面的资料,但是当我找到它们时我会发布它们。

答案 3 :(得分:2)

我个人认为,随着时间的推移,Microsoft通过Service Pack和新的Windows版本将越来越多的核心.NET Framework功能直接集成到Windows操作系统中。

我相信,他们在V 4.0中重新设计了操作系统绑定,因此支持的操作系统的代码库和启动和运行.NET所需的额外资源会减少。例如。所有XP特别版都从3.5和4.0之间的支持列表中删除。在4.5中,操作系统基础正在缩小甚至更多(Vista / 7 / Win8和Server 2008/2013)。

同样如上所述,除了英语之外的其他功能被修剪掉了,其他一些功能被提取到.NET SDK包中。

只是我的两分钱。