VSTO 先瘦身再发布:客户端配置文件
曾经在一个 VSTO 2008 的讨论会上听到一些小型软件开发商的担忧:我们本来使用 C++ 为 Office 开发插件,然后通过互联网给用户下载,并且收取费用。现在我们想用 VSTO,但是发布插件的时候,居然要用户下载 200MB 的 .NET Framework???我的插件本身才 50K 哎!我的很多用户现在依然使用低速网络接入,200MB 的内容够他们下载整整一天的了,这样我的产品怎么卖得出去?
发布,很现实的问题,开发人员使用 VSTO 强大的功能,可以快速做出以前很难实现的功能,可是如果最后却很难把产品分发给用户,那前面的工作又有什么意义呢?在企业内部,我们可以通过“推送”的方法把 .NET Framework 方便地部署到每个客户端 PC,接下来再部署基于 VSTO 的解决方案就不是那么困难了;但是对于 ISV 呢,难道他们就注定和 VSTO 无缘了?
也许不是。
在先前的 Blog 里面我们提到过随着 Visual Studio 2008 SP1 的发布,VSTO 现在可以把“.NET 框架客户端配置(.NET Framework Client Profile)”作为目标框架。在这种配置下,如果目标系统没有安装 .NET Framework,那么安装程序将下载一个面向客户端应用程序的 .NET Framework 3.5 SP1 的子集。下载量将从原来的 200MB 缩小到 26.5MB。
那么如何使 VSTO 的解决方案使用针对客户端的配置呢?
- 创建一个新的 VSTO 加载项工程(针对 Office 2007)
- 打开工程属性页面
- 在“应用程序”选项卡的“目标框架”选项中,钩选“客户端配置文件子集”
- 保存工程
作了上述的修改之后,工程中所有对 .NET 框架类库的引用,都必须限制在“客户端配置文件”这个子集内,编译器会负责这项检查,并且指出超出范围的引用。关于“客户端配置文件”的详细信息,可以参阅这篇 MSDN 文档:.NET Framework 客户端配置文件。
在准备发布工程的时候,我们还需要在“工程属性”的“发布”页面里面对预安装选项进行调整:原先需要预安装完整版本的 .NET Framework 3.5 SP1 可以改为预安装 .NET Framework Client Profile。
The install location for prerequisites has not been set to ‘component vendor’s web site’ and the file ‘DotNetFx35Client\DotNetFx35ClientSetup.exe’ in item ‘.NET Framework Client Profile’ can not be located on disk.请问只能从微软网站下载安装而不能离线安装?Microsoft .NET Framework Client Profile Offline Installer – PREVIEW这个是正式版吗?Quick DetailsFile Name: DotNetFx35Client.exe Version: RTM Date Published: 8/22/2008 Language: English Download Size: 255.6 MB
[回复]
如果我选择从UNC/CDROM位置发布,好像仍然是一个巨大的Framework分发包。
[回复]
20多M另外的下载,还是很多的!!
[回复]
4color: 相比用 C++ 开发的 Office 加载项工程,26.5M 的客户端配置依然显得比较大。但是从 .NET 提供的功能、开发效率、调式难度等多方面综合考量,这样的配置有时候已经可以让我们得到不错的性价比了。
[回复]
dotAge: 如果是在企业内部通过 UNC 发布,如果没有很苛刻的网络速率或者流量限制,其实完全可以考虑使用完整版本的 .NET Framework。因为很有可能其它的基于 .NET 的应用程序还是要求完整版本的。CD-ROM 发布也类似。不过,这并不表示不可以在 UNC 发布的时候使用客户端配置,设置方法是一样的。区别仅在于选择发布位置。
[回复]
yanshuai: 你列出的那个 255.6MB 的安装包是用来给管理员在企业内部环境配置 .NET Client Profile 再分发用的,里面应该包含了适用于各种版本 Windows (XP / Vista, x86 / x64) 的 .NET Client Profile 安装包。下列地址包含的是在线安装的版本(一个安装引导程序,自动从微软网站下载适合客户环境的版本):http://www.microsoft.com/downloads/details.aspx?FamilyID=8cea6cd1-15bc-4664-b27d-8ceba808b28b&DisplayLang=en
[回复]
虽然我选择的是CDROM安装,但其实并不是说要刻个CD给用户,而是要做成一个本地的完全独立安装包。从客户体验角度讲,启动了一个setup以后,再让他等半天的感觉很不好。并且,即使下载时间相同,他们也宁可选择先完全下载安装包再运行,而不愿意先启动安装程序,再进行等待。因此,即使在企业内部,我们仍然需要将完整程序打包给客户端下载,这样,一个臃肿的安装包很容易把用户吓倒。难道不可以将这26.5M的客户端框架包独立成一个安装版吗?
[回复]
re: dotAge请确定在工程发布属性的预安装选项里面选择了“.NET Framework Client Profile”,并且没有选择“.NET Framework 3.5 SP1”,后者会把完整版本的 .NET Framework 3.5 包含到发布内容中。如果你需要本地独立的 Client Profile 安装,可以从下列地址下载:http://www.microsoft.com/downloads/details.aspx?familyid=87809432-919C-44C0-AB3E-94C5B0ED03D6&displaylang=en得到的是一个包含了完整版本和客户端版本的压缩包,解压缩之后可以看到里面的一个完整版本安装包和三个“Client”安装包。各取所需。另外,setup.exe 在安装 .NET Framework 和其它必须组件的时候,会显示用户界面和进度,所以不会让用户错觉以为程序失去响应。
[回复]
你好,我这两天在用C#做一个Outlook的插件,但是我有很多问题没有办法解决,在网上查了很多资料都发现没有太大帮助,可以加我QQ,给我指教一下吗? 谢谢哈
我的QQ:531253125
[回复]
你好!
我部署后的VSTO程序的局域网内,没有连到internet。每次打开VSTO EXCEL都特别慢,大概30秒左右。别的同事也一样。很是苦恼啊。
求助!有没有什么好的方法解决一下?拜托。
[回复]