如何开发和部署Outlook 2010插件

如何开发和部署Outlook 2010插件,第1张

首先,我要说一下什么是插件(Add-in)
插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是ExtensibilityIDTExtensibility2
当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。

其次,我要说一下以前是怎么开发插件Add-in的
开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:
VBA 开发:这个是基于Visaul Basic for Application这套开发模型做的一些定制。这种定制的限制比较多一些,但开发难度相对来说更加低一些。做过VBA开发的朋友都知道,VBA是脱离不了应用程序本身的。例如Excel的VBA编辑器如下图所示
VC++,Visual Basic开发:这种开发方式允许我们在VC++,或者VB 6中,直接实现ExtensibilityIDTExtensibility2这套接口,并且可以更加灵活,做更加强大的一些定制。目前的Office应用程序中,默认就安装好了的一些插件,都是这种方式做的。例如下图是我的Outlook默认安装的一些插件列表
备注很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。
VSTO开发:所谓VSTO,全称是Visual Studio Tools for Office我记得是从VS 2003开始提供了VSTO 10,简而言之,就是允许在NET的开发环境中开发Office应用程序或者插件。这种方式有着显而易见的好处,就是能力增强,因为可以用到NET的整套框架。VSTO发展到现在有几个版本,分别如下
VS 2003: VSTO 10
VS 2005: VSTO 20
VS 2008: VSTO 30
VS 2010: VSTO 40

VSTO 之前的版本有一些不太好的地方是部署,不要小看部署这个环节。如果你曾经花了很多精力写出来了一个很好的插件,但是因为各式各样的部署问题导致没有办法很顺利地分发给你的用户,那种感觉是很让人沮丧的。VSTO的解决方案有相当多的一些环境依赖,另外还需要提升NET中的安全策略等等。
一个好消息是,现在的新版本中,开发和部署将是相对更加容易了。在开发方面,模板更加好用,也提供了对Ribbon的内置支持,部署方面,我们可以通过ClickOnce技术发布到网站,或者打包成一个vsto压缩包文件,很容易地进行部署。本文我们就来用一个简单例子进行说明。
然后,我们来看看在新版的开发工具中,如何快速高效地开发插件(Add-in)
作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:
我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以d出一个窗口,允许我们从Excel文件中导入联系人

那就让我们开始吧
第一步:创建一个Add-in项目
这个项目模板会自动创建下面的项目结构
备注在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可
thisApplication
第二步:添加一个Ribbon
我们需要为Outlook添加一个新的Ribbon按钮,事实上这很容易做到。
我们选择Ribbon(Visual Designer),这样就可以在可视化界面中设计了
我们首先需要设置一下,这个Ribbon是在什么地方要显示。在下图中,我们将RibbonType修改为MicrosoftOutlookExplorer,这样的意思是说,我们这个Ribbon是现在在Outlook默认的那个管理器窗口中的
接下来,我们可以添加一个按钮到group1中去。工具箱中有很多可用的控件
我最好做好的Ribbon看起来像下面这样

第三步:实现简单的逻辑
接下来,我们可以为这个按钮实现简单的逻辑
通过双击该按钮,会产生一个事件处理器
我简单地实现代码如下
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using MicrosoftOfficeToolsRibbon;
using SystemWindowsForms;
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=FormStartPositionCenterScreen
};
formShow();
}
}
}
第四步:调试
完成如上的 *** 作之后,一个最简单的Add-in就做好了。那么如何进行调试呢?
没错,直接按F5就可以进行调试了。此时,Outlook会自动打开,然后我们的Ribbon也确实能看到了
点击该按钮,我们也确实可以看到一个窗口被显示出来了

同时,我们在Outlook的选项对话框中也能看到这个插件的信息

第五步:发布
如果我们在本机做好了调试,那么如何分发给用户呢?以前我们一般会制作一个MSI的安装程序,现在你依然可以这么做。但我今天主要介绍的是一种更加方便的部署方式,就是通过ClickOnce技术发布到网站或者文件夹中。

注意这里的location是可以有下面几种的。但我这里保持默认的选择,直接发布到一个文件夹
发布如果没有遇到什么错误的话,会生成下面的一个目录
我们一般可以将这个目录,打包给用户即可。

第六步:安装
接下来,用户如果拿到了这些文件,应该如何安装使用呢?其实也很简单,它可以双击setupexe,或者设置直接双击vsto文件也可以
一般情况下,会有一个提示。
点击“install”
然后,我们再去打开Outlook的话,仍然是可以看到这个Add-in以及它所添加的Ribbon的
第七步:卸载
最后,如果用户需要卸载这个插件,应该怎么做呢?
他们可以在Programs and Features窗口中,找到这个插件,然后点击“Uninstall”即可

首先,我要说一下什么是插件(Add-in)
插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是ExtensibilityIDTExtensibility2
当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。

其次,我要说一下以前是怎么开发插件Add-in的
开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:
VBA 开发:这个是基于Visaul Basic for Application这套开发模型做的一些定制。这种定制的限制比较多一些,但开发难度相对来说更加低一些。做过VBA开发的朋友都知道,VBA是脱离不了应用程序本身的。例如Excel的VBA编辑器如下图所示
VC++,Visual Basic开发:这种开发方式允许我们在VC++,或者VB 6中,直接实现ExtensibilityIDTExtensibility2这套接口,并且可以更加灵活,做更加强大的一些定制。目前的Office应用程序中,默认就安装好了的一些插件,都是这种方式做的。例如下图是我的Outlook默认安装的一些插件列表
备注很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。
VSTO开发:所谓VSTO,全称是Visual Studio Tools for Office我记得是从VS 2003开始提供了VSTO 10,简而言之,就是允许在NET的开发环境中开发Office应用程序或者插件。这种方式有着显而易见的好处,就是能力增强,因为可以用到NET的整套框架。VSTO发展到现在有几个版本,分别如下
VS 2003: VSTO 10
VS 2005: VSTO 20
VS 2008: VSTO 30
VS 2010: VSTO 40

VSTO 之前的版本有一些不太好的地方是部署,不要小看部署这个环节。如果你曾经花了很多精力写出来了一个很好的插件,但是因为各式各样的部署问题导致没有办法很顺利地分发给你的用户,那种感觉是很让人沮丧的。VSTO的解决方案有相当多的一些环境依赖,另外还需要提升NET中的安全策略等等。
一个好消息是,现在的新版本中,开发和部署将是相对更加容易了。在开发方面,模板更加好用,也提供了对Ribbon的内置支持,部署方面,我们可以通过ClickOnce技术发布到网站,或者打包成一个vsto压缩包文件,很容易地进行部署。本文我们就来用一个简单例子进行说明。
然后,我们来看看在新版的开发工具中,如何快速高效地开发插件(Add-in)
作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:
我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以d出一个窗口,允许我们从Excel文件中导入联系人

那就让我们开始吧
第一步:创建一个Add-in项目
这个项目模板会自动创建下面的项目结构
备注在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可
thisApplication
第二步:添加一个Ribbon
我们需要为Outlook添加一个新的Ribbon按钮,事实上这很容易做到。
我们选择Ribbon(Visual Designer),这样就可以在可视化界面中设计了
我们首先需要设置一下,这个Ribbon是在什么地方要显示。在下图中,我们将RibbonType修改为MicrosoftOutlookExplorer,这样的意思是说,我们这个Ribbon是现在在Outlook默认的那个管理器窗口中的
接下来,我们可以添加一个按钮到group1中去。工具箱中有很多可用的控件
我最好做好的Ribbon看起来像下面这样

第三步:实现简单的逻辑
接下来,我们可以为这个按钮实现简单的逻辑
通过双击该按钮,会产生一个事件处理器
我简单地实现代码如下
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using MicrosoftOfficeToolsRibbon;
using SystemWindowsForms;
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=FormStartPositionCenterScreen
};
formShow();
}
}
}
第四步:调试
完成如上的 *** 作之后,一个最简单的Add-in就做好了。那么如何进行调试呢?
没错,直接按F5就可以进行调试了。此时,Outlook会自动打开,然后我们的Ribbon也确实能看到了
点击该按钮,我们也确实可以看到一个窗口被显示出来了

同时,我们在Outlook的选项对话框中也能看到这个插件的信息

第五步:发布
如果我们在本机做好了调试,那么如何分发给用户呢?以前我们一般会制作一个MSI的安装程序,现在你依然可以这么做。但我今天主要介绍的是一种更加方便的部署方式,就是通过ClickOnce技术发布到网站或者文件夹中。

注意这里的location是可以有下面几种的。但我这里保持默认的选择,直接发布到一个文件夹
发布如果没有遇到什么错误的话,会生成下面的一个目录
我们一般可以将这个目录,打包给用户即可。

第六步:安装
接下来,用户如果拿到了这些文件,应该如何安装使用呢?其实也很简单,它可以双击setupexe,或者设置直接双击vsto文件也可以
一般情况下,会有一个提示。
点击“install”
然后,我们再去打开Outlook的话,仍然是可以看到这个Add-in以及它所添加的Ribbon的
第七步:卸载
最后,如果用户需要卸载这个插件,应该怎么做呢?
他们可以在Programs and Features窗口中,找到这个插件,然后点击“Uninstall”即可

最终用户可通过下列方式安装文档级自定义项和应用程序级外接程序:运行在发布解决方案时创建的安装程序。有关安装程序的信息,请参见发布Office解决方案。打开以vsto扩展名结尾的部署清单文件。打开自定义文档或工作簿(如果已安装了必备组件,并已设置了安全策略以向解决方案授予信任)。适用于:本主题中的信息适用于MicrosoftOffice2010和2007MicrosoftOfficesystem的文档级项目和应用程序级项目。有关信息,请参见按Office应用程序和项目类型提供的功能。使用安装程序进行安装双击setupexe开始安装。安装程序将检查系统必备,并在用户帐户有管理权限时根据需要安装系统必备。有关信息,请参见Office解决方案的部署系统必备。接下来,VisualStudioToolsforOffice运行时将检查是否有正确的权限和证据,例如使用已知的可信证书对清单进行签名或将Office解决方案安装到ProgramFiles目录中。取决于证书和权限级别,可能会出现ClickOnce信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。在应用程序中运行自定义项或外接程序:对于文档级自定义项,可以直接从安装位置打开包含自定义项的文档,也可以将文档复制到本地计算机,然后打开该文件。如果文档保留在网络文件共享上,则必须将网络位置添加到MicrosoftOffice应用程序中信任中心的受信任位置。有关信息,请参见向文档授予信任。对于应用程序级外接程序,请打开应用程序。通过打开部署清单vsto文件进行安装打开部署清单vsto文件以开始安装。注意此方法要求已安装VisualStudioToolsforOfficeRuntime。同时,此安装方法不会检查系统必备。有关信息,请参见Office解决方案的部署系统必备。接下来,VisualStudioToolsforOffice运行时将检查是否有正确的权限和证据,例如使用已知的可信证书对清单进行签名或将Office解决方案安装到ProgramFiles目录中。取决于证书和权限级别,可能会出现ClickOnce信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。在应用程序中运行自定义项或外接程序:对于文档级自定义项,可以直接从安装位置打开包含自定义项的文档,也可以将文档复制到本地计算机,然后打开该文件。如果文档保留在网络文件共享上,则必须将网络位置添加到MicrosoftOffice应用程序中信任中心的受信任位置。有关信息,请参见向文档授予信任。对于应用程序级外接程序,请打开应用程序。使用MicrosoftOffice安装文档级自定义项打开文档以开始安装。注意此方法要求已安装VisualStudioToolsforOfficeRuntime和NETFramework。同时,此安装方法不会检查系统必备。有关信息,请参见Office解决方案的部署系统必备。安装程序将在MicrosoftOffice应用程序的信任中心检查是否有正确的权限和正确的证据,例如使用已知的可信证书对清单进行签名或将Office解决方案安装到ProgramFiles目录中。取决于证书和权限级别,可能会出现ClickOnce信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。

首先,我要说一下什么是插件(Add-in)
插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是ExtensibilityIDTExtensibility2
当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。

其次,我要说一下以前是怎么开发插件Add-in的
开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:
VBA 开发:这个是基于Visaul Basic for Application这套开发模型做的一些定制。这种定制的限制比较多一些,但开发难度相对来说更加低一些。做过VBA开发的朋友都知道,VBA是脱离不了应用程序本身的。例如Excel的VBA编辑器如下图所示
VC++,Visual Basic开发:这种开发方式允许我们在VC++,或者VB 6中,直接实现ExtensibilityIDTExtensibility2这套接口,并且可以更加灵活,做更加强大的一些定制。目前的Office应用程序中,默认就安装好了的一些插件,都是这种方式做的。例如下图是我的Outlook默认安装的一些插件列表
备注很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。
VSTO开发:所谓VSTO,全称是Visual Studio Tools for Office我记得是从VS 2003开始提供了VSTO 10,简而言之,就是允许在NET的开发环境中开发Office应用程序或者插件。这种方式有着显而易见的好处,就是能力增强,因为可以用到NET的整套框架。VSTO发展到现在有几个版本,分别如下
VS 2003: VSTO 10
VS 2005: VSTO 20
VS 2008: VSTO 30
VS 2010: VSTO 40

VSTO 之前的版本有一些不太好的地方是部署,不要小看部署这个环节。如果你曾经花了很多精力写出来了一个很好的插件,但是因为各式各样的部署问题导致没有办法很顺利地分发给你的用户,那种感觉是很让人沮丧的。VSTO的解决方案有相当多的一些环境依赖,另外还需要提升NET中的安全策略等等。
一个好消息是,现在的新版本中,开发和部署将是相对更加容易了。在开发方面,模板更加好用,也提供了对Ribbon的内置支持,部署方面,我们可以通过ClickOnce技术发布到网站,或者打包成一个vsto压缩包文件,很容易地进行部署。本文我们就来用一个简单例子进行说明。
然后,我们来看看在新版的开发工具中,如何快速高效地开发插件(Add-in)
作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:
我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以d出一个窗口,允许我们从Excel文件中导入联系人

那就让我们开始吧
第一步:创建一个Add-in项目
这个项目模板会自动创建下面的项目结构
备注在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可
thisApplication
第二步:添加一个Ribbon
我们需要为Outlook添加一个新的Ribbon按钮,事实上这很容易做到。
我们选择Ribbon(Visual Designer),这样就可以在可视化界面中设计了
我们首先需要设置一下,这个Ribbon是在什么地方要显示。在下图中,我们将RibbonType修改为MicrosoftOutlookExplorer,这样的意思是说,我们这个Ribbon是现在在Outlook默认的那个管理器窗口中的
接下来,我们可以添加一个按钮到group1中去。工具箱中有很多可用的控件
我最好做好的Ribbon看起来像下面这样

第三步:实现简单的逻辑
接下来,我们可以为这个按钮实现简单的逻辑
通过双击该按钮,会产生一个事件处理器
我简单地实现代码如下
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using MicrosoftOfficeToolsRibbon;
using SystemWindowsForms;
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=FormStartPositionCenterScreen
};
formShow();
}
}
}
第四步:调试
完成如上的 *** 作之后,一个最简单的Add-in就做好了。那么如何进行调试呢?
没错,直接按F5就可以进行调试了。此时,Outlook会自动打开,然后我们的Ribbon也确实能看到了
点击该按钮,我们也确实可以看到一个窗口被显示出来了

同时,我们在Outlook的选项对话框中也能看到这个插件的信息

第五步:发布
如果我们在本机做好了调试,那么如何分发给用户呢?以前我们一般会制作一个MSI的安装程序,现在你依然可以这么做。但我今天主要介绍的是一种更加方便的部署方式,就是通过ClickOnce技术发布到网站或者文件夹中。

注意这里的location是可以有下面几种的。但我这里保持默认的选择,直接发布到一个文件夹
发布如果没有遇到什么错误的话,会生成下面的一个目录
我们一般可以将这个目录,打包给用户即可。

第六步:安装
接下来,用户如果拿到了这些文件,应该如何安装使用呢?其实也很简单,它可以双击setupexe,或者设置直接双击vsto文件也可以
一般情况下,会有一个提示。
点击“install”
然后,我们再去打开Outlook的话,仍然是可以看到这个Add-in以及它所添加的Ribbon的
第七步:卸载
最后,如果用户需要卸载这个插件,应该怎么做呢?
他们可以在Programs and Features窗口中,找到这个插件,然后点击“Uninstall”即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13394045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存