VSTO项目一般有两种布署方式,一是SmartClient方式(详情参见我的前一篇日志: VSTO 2005 项目的布署和运行),二是直接在客户端安装。前者在我的实践过程中发现一些不可预料的问题以及诸多不便之处,比如,同样的代码在第二种方式中可以完全正常运行,在第一种方式下就不行,再比如第一种方式在需要在IE中打开Office,IE的前进后退等操作经常会困扰用户。这样,我们开始逐步向第二布署方式倾斜,特别是在一个更有力的砝码出现之后,那就是我们的SMS服务器即将被批准!程序的更新通过SMS推到客户端,同样可以实现客户端的免维护,这在某种程度上比SmartClient和Browser/Server模式更优越。
VSTO项目安装到客户端需要有大量的工作要做,比如诸多的Prerequisites,又比如安全信任授权,等等。这些工作我们当然希望在Setup的时候由安装程序自动完成,幸运的是,这是基本可行的,微软有两篇文档详细叙述了这个过程:
Deploying Visual Studio 2005 Tools for Office Solutions Using Windows Installer (Part 1 of 2)
Deploying Visual Studio 2005 Tools for Office Solutions Using Windows Installer: Walkthroughs (Part 2 of 2)
对于VSTO 2005 SE,文档为:
Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer (Part 1 of 2)
Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer: Walkthroughs (Part 2 of 2)
实践过程中应该注意以下事项:
- 虽然安装程序能自动检测大多数的Prerequisites,并可根据需要安装,但还是强烈建议将操作系统及Office 2003 update到最新;
- 最好将文中MyCompanyName替换为你自己项目中的CompnyName,否则虽然不会出现运行方面的障碍,但在.NET Framework配置代码信任策略中会比较难看;
- 一定要将Primary output from UpdateManifest (Active)的CustomActionData中的 documentName="ExcelApplication.xls“部分改为你自己的xls或xlt文件名,否则安装时会出现File Not Found错误,导致安装失败;
- 在安装项目属性中的Prerequisites对话框(如下图)中,最好选择第二项Download prerequisites from the same location as my application,否则生成安装包时,部分选项可能不会随包分发,导致安装失败;
- 若要在开始菜单中自动生成菜单项或生成桌面快捷方式,则可以在项目的File System视图中Application Folder中你的项目主输出属性页中设置一个Exclude Filter为*.xls或*.xlt,然后在Application Folder中Add这个被排除的xls/xlt File,右击这个刚被加进来的输出文件,选择Create Shortcut to 这个文件,最后将产生的Shortcut移动或复制到User's Desktop或User's Programes Menu中即可