技术开发 频道

打造完美Office:解析VSTO2010运行组件

  IT168专稿在开发VSTO 2010运行时组件时我们添加了一个叫做按需安装的功能,以便在安装VSTO 2010之前不用强制安装.Net Framework 3.5和.Net Framework 4.0,支持用户按需安装.Net Framework 3.5和.Net Framework 4.0,为了达到这个目的,我需要将运行时拆分成3个组件,如图1所示。

    图1  VSTO 2010运行时组件

  VSTO Loader可以被看作是VSTO 2010运行时的内置组件,使用它与Office通信,无论怎么安装运行时,这个组件总是处于打开状态(下面会讨论不同的安装方案),Office 3.5运行时扩展和Office 4.0运行时扩展显示在VSTO Loader的上方,它们是执行定制安装.Net Framework 版本必需的,红色箭头表示扩展依赖的.Net Framework 版本。

  为了更好地理解新的按需安装功能对你和你终端用户的影响,我将会列举三个不同的需要安装VSTO 2010运行时的应用场景。

  • Visual Studio 2010
  • Office 2010
  • VSTO 2010运行时可再分发版本

  因为这些不同的场景我们不能确定用户在安装VSTO 2010运行时时是否安装了特定版本的.Net Framework ,为了更好描述,假设你正在部署一个定制应用,客户尚未从.Net 3.5转移到.Net 4.0框架,如果我们安装了上图所示的全部三个组件,我们可能会被强制要求安装.Net 4.0框架,这意味着你的客户可能不得不安装.Net Framework 4.0,即使你的定制程序不需要它。与此类似,如果你正在部署的定制应用需要.Net Framework 4.0,但如果客户没有安装.Net Framework 3.5,那么还必须安装预先.Net Framework 3.5,我们唯一能做的就是将不同.Net Framework 版本对应的扩展全部开启,因此按需安装设计为开发人员和最终用户安装VSTO 2010运行时提供了更好的灵活性,并且在安装任何.Net Framework 版本后,对VSTO不需要任何手工配置。

  Visual Studio 2010

  过去,VSTO运行时都是打包在Visual Studio发行包中的,在Visual Studio 2010安装中也提供了安装VSTO 2010的链接,在一台没有.Net Framework 3.5的机器上安装Visual Studio 2010时,Office 4.0运行时扩展自动开启,而Office 3.5运行时扩展就处于关闭状态,如下图所示。


图2  开启Office 4.0运行时扩展,关闭Office 3.5运行时扩展的环境

  如果开发人员想创建.Net Framework 3.5应用程序,将需要安装.Net Framework 3.5,安装完.Net Framework 3.5后,开发人员启动Visual Studio 2010就可以创建.Net Framework 3.5应用程序了,但VSTO 2010运行时的Office 3.5运行时扩展仍然没有开启,不用担心,开发人员在第一次创建使用.Net Framework 3.5的VSTO项目时自会得到提示,在项目初始化期间你会看到一个MSI配置对话框。


图3  MSI配置对话框

  当项目创建成功后,VSTO 2010运行时将会安装Office 3.5运行时扩展,然后整个运行时状态变成下面这样。


图4 Office 3.5和Office 4.0运行时扩展同时开启

  如果.Net Framework 3.5先于Visual Studio 2010安装,运行时将会完整安装,就不会有按需安装了。

  Office 2010

  如果不出意外,VSTO 2010将会包含在Office 2010安装包中,这对于最终用户是个非常好的消息,他们不用再安装VSTO 2010运行时可再分发版本,注意Office 2010 Beta和RTM版没有Office 4.0运行时扩展,如果你正在部署一个.Net Framework 4.0定制应用程序,那你需要安装VSTO 2010运行时可再分发版本。

  安装了Office 2010的用户将会接受VSTO运行时,Office 3.5运行时扩展也将会被开启,也就是说,如果机器上存在.Net Framework 3.5,这些扩展将会被安装并被启用。

  图 5 启动Office 3.5运行时扩展,禁用Office 4.0运行时扩展

  VSTO 2010运行时可再分发版本

  通过启动文件(setup.exe)或通过下载中心安装可再分发版本的最终用户将会接受两个扩展,这样既可以运行.Net Framework 3.5应用程序,也可以运行.Net Framework 4.0应用程序,无论机器怎么配置,只要安装了可再分发版本,只要有对应的.Net Framework 版本,所有部署的应用程序都可以运行。注意这对一键部署没有限制,自定义MSI部署也可以工作,对于一键部署,在安装过程中开启扩展,对于MSI自定义部署,在第一次载入定制应用程序时开启,在这两种情况下,最终用户都会看到图3所示的对话框。

  最后,包含在Office 2010中的VSTO 2010运行时按需安装特性会简化许多部署场景,安装了Office 2010的最终用户如果要运行.Net Framework 3.5应用程序,不再需要手动安装VSTO 2010运行时,也不需要知道它是否存在,对于那些安装了.Net Framework 4.0的Office 2007或Office 2010用户,可以灵活选择是否安装VSTO 2010运行时,不用担心是否有正确的.Net Framework

0
相关文章