这篇文章,我将通过一个简单的例子,给大家分享一下如何在VS 2010中开发和部署Outlook 2010的插件(Add-in)
插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是Extensibility.IDTExtensibility2.
当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。
开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:
【备注】很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。
作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:
我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以弹出一个窗口,允许我们从Excel文件中导入联系人
那就让我们开始吧
这个项目模板会自动创建下面的项目结构
【备注】在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可
this.Application
我们需要为Outlook添加一个新的Ribbon按钮,事实上这很容易做到。
我们选择Ribbon(Visual Designer),这样就可以在可视化界面中设计了
我们首先需要设置一下,这个Ribbon是在什么地方要显示。在下图中,我们将RibbonType修改为Microsoft.Outlook.Explorer,这样的意思是说,我们这个Ribbon是现在在Outlook默认的那个管理器窗口中的
接下来,我们可以添加一个按钮到group1中去。工具箱中有很多可用的控件
我最好做好的Ribbon看起来像下面这样
接下来,我们可以为这个按钮实现简单的逻辑
通过双击该按钮,会产生一个事件处理器
我简单地实现代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Tools.Ribbon; using System.Windows.Forms; namespace OutlookAddInSample { public partial class MyRibbon { private void MyRibbon_Load(object sender, RibbonUIEventArgs e) { } private void btImport_Click(object sender, RibbonControlEventArgs e) { Form form = new Form() { Text = "Import Contacts from Excel File", StartPosition=FormStartPosition.CenterScreen }; form.Show(); } } }
完成如上的操作之后,一个最简单的Add-in就做好了。那么如何进行调试呢?
没错,直接按F5就可以进行调试了。此时,Outlook会自动打开,然后我们的Ribbon也确实能看到了
点击该按钮,我们也确实可以看到一个窗口被显示出来了
同时,我们在Outlook的选项对话框中也能看到这个插件的信息
如果我们在本机做好了调试,那么如何分发给用户呢?以前我们一般会制作一个MSI的安装程序,现在你依然可以这么做。但我今天主要介绍的是一种更加方便的部署方式,就是通过ClickOnce技术发布到网站或者文件夹中。
【注意】这里的location是可以有下面几种的。但我这里保持默认的选择,直接发布到一个文件夹
发布如果没有遇到什么错误的话,会生成下面的一个目录
我们一般可以将这个目录,打包给用户即可。
接下来,用户如果拿到了这些文件,应该如何安装使用呢?其实也很简单,它可以双击setup.exe,或者设置直接双击vsto文件也可以
一般情况下,会有一个提示。
点击“install”
然后,我们再去打开Outlook的话,仍然是可以看到这个Add-in以及它所添加的Ribbon的
最后,如果用户需要卸载这个插件,应该怎么做呢?
他们可以在Programs and Features窗口中,找到这个插件,然后点击“Uninstall”即可
通过本文的简单实例,大家可以了解到在VS 2010中开发Outlook 2010插件相比较之前而言,有了很大的一些改进。当然,VS 2010也可以开发Office 2007版本的插件。