http://www.hanselman.com/blog/PermaLink.aspx?guid=af453d70-64b3-417e-9492-d115f929195d
http://msdn.microsoft.com/zh-cn/library/cc656912.aspx
关于.NET的大小经常有一些误解。.NET Framework并不真的需要下载200+M大小的安装包。
1. 我使用的是什么样的安装包?
用最简单的方式描述:
a. 离线安装包
-一个可以离线运行的单独文件。它是完整的,适用于所有平台,可离线安装的。
b. 在线安装包
-一个2.7M安装程序(名为“bootstrapper”)。它会检测你需要哪些文件,下载10-60M。
注意:如果你是一个办公室IT人员,你可能需要决定你是想要办公室里的每个人分别下载.NET,还是一次性下载完,放在一个网络共享上供他人运行。你可以阅读“Deployment Guide for Administrators”<http://msdn.microsoft.com/en-us/library/cc160717.aspx>判断是否要通过AD或SMS来推送。
2. 那么我到底需要下载多大?
这取决于你已经安装的版本。如下是一个XP SP2机器上的试验结果:
.NET版本 升级到3.5 SP1需要下载的大小 下载时间(512Kbps)
无 约56MB 15分钟
2.0 约50MB 15分钟
2.0 SP1 约33MB 9分钟
3.0 SP1 约10MB 3分钟
从下载的观点来看,这些数字不算太坏,并不如很多人通常描述的那样。我不是为微软辩护,也不是微软的五毛党,我只是显示我从我的测试看到的数据。我的一切观点基于数据。
但是,作为一个自由的小独立开发者,和一个.NET客户端应用程序的分发者(有兴趣的可以访问原作者的网站:http://www.hanselman.com/babysmash/),我总是希望下载的大小越小越好。我经常收到如下的邮件:“我很喜欢你们的软件,但我不想下载200M的.NET Framework。”你们中很多人肯定也收到过类似的邮件。要想改变,最好的方式就是增加“实质性部分”。
3. 在线体验
“客户端配置文件(Client Profile)”是什么?
客户端配置文件<http://www.microsoft.com/downloads/details.aspx?FamilyId=8CEA6CD1-15BC-4664-B27D-8CEBA808B28B&displaylang=en>是一个在XP上安装.NET 3.5 SP1的选择。它只有277k。(下载页面上的介绍:.NET Framework客户端配置文件在线安装包包含了在线安装和分发所需的.NET Framework的程序集)
当它在一台不带任何.NET Framework的Windows XP SP2机器上运行时,它会下载一个28M的有效负载,给你一个对应于特定客户端的.NET 3.5的子集。(似乎意思就是可以减少28M的下载量?)如果客户端配置文件运行在已安装任何版本的.NET的机器上,那么它就会采取和3.5 SP1在线安装相同的行动,检测需要下载的量并去下载。更详细请参考"Client Profile Deployment Guide"<http://download.microsoft.com/download/5/a/a/5aa86d6c-969b-42d8-bc6b-30e02bfeccf0/NETFXClientProfile_DeploymentGuide.htm>和http://msdn.microsoft.com/zh-cn/library/cc656912.aspx。(不过看完后我发现这玩意似乎只对XP有用。。。Vista上面还是要完全安装,由于默认自带3.0。)
有人提到的.NET Framework安装包过大需要200+M(如http://blog.deploymentengineering.com/2008/08/net-35-sp1-231mb.html),这指的是离线安装包。
4. 离线体验
虽然默认的离线安装包很大,你也可以修改这个离线安装包,使之尽量得小。如果你只支持x86平台,那么就可以只需要x86的部分。"How to create an installable layout for the final release of the .NET Framework 3.5"<http://blogs.msdn.com/astebner/archive/2007/12/03/6646794.aspx>一文中描述了具体如何精简。在更高的层面上,还可以根据检测支持的操作系统和处理器架构,然后选择性地移除。
这主要是针对于管理员和IT人员的。还有更牛的人可以采用分离,压缩或其他方法让安装包更加小。
原作者还制作了这个网站:
http://www.smallestdotnet.com/
通过嗅探你的浏览器用户代理,告诉你你现在的.NET版本,你需要下载多大,哪种分发包最适合于你。这个网站也包含了一些Javascript,你可以加入你的产品网站,例如:
<script src="http://www.smallestdotnet.com/smallestdotnet/javascript.ashx" type="text/javascript"></script>
Detected 3.5 SP1 .NET Framework. No update needed.