(所有尺寸参考均采用打包尺寸术语,未部署/安装尺寸)
基本上,以前的.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”是什么时,普通互联网用户如何为自己的使用和语言下载和安装语言包?我错过了什么或者这不重要吗?框架在口语或对话框中与最终用户通信的频率是多少?
我获得这些信息的文章如下:
答案 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包中。
只是我的两分钱。