[转]VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)

本文转自:https://www.cnblogs.com/chenxizhang/archive/2010/05/08/1730766.html

概述:

这篇文章,我将通过一个简单的例子,给大家分享一下如何在VS 2010中开发和部署Outlook 2010的插件(Add-in)

首先,我要说一下什么是插件(Add-in)

插件一般是对现有程序的扩展,微软的Office系统公开了一套接口,可以很方便地让开发人员基于这些接口去实现对Office应用程序的增强。这个接口,准确地说,就是Extensibility.IDTExtensibility2.

当然,除了Office,有很多应用程序都支持类似的扩展机制,例如IE,以及Visual Studio本身,都支持一定程序的扩展。

其次,我要说一下以前是怎么开发插件Add-in的

开发Office插件(Add-in)的途径有各种各样的,我大致总结分为三类:

  • VBA 开发:这个是基于Visaul Basic for Application这套开发模型做的一些定制。这种定制的限制比较多一些,但开发难度相对来说更加低一些。做过VBA开发的朋友都知道,VBA是脱离不了应用程序本身的。例如Excel的VBA编辑器如下图所示

  • VC++,Visual Basic开发:这种开发方式允许我们在VC++,或者VB 6中,直接实现Extensibility.IDTExtensibility2这套接口,并且可以更加灵活,做更加强大的一些定制。目前的Office应用程序中,默认就安装好了的一些插件,都是这种方式做的。例如下图是我的Outlook默认安装的一些插件列表

【备注】很早之前,我也用VB 6做过这方面的开发。但现在基本连VB 6的安装程序都找不到了。所以这里就不截图了,其实就是有一个项目模板,然后实现接口。开发这种插件,关键在于对Office本身内部的一些对象模型熟悉。

  • VSTO开发:所谓VSTO,全称是Visual Studio Tools for Office.我记得是从VS 2003开始提供了VSTO 1.0,简而言之,就是允许在.NET的开发环境中开发Office应用程序或者插件。这种方式有着显而易见的好处,就是能力增强,因为可以用到.NET的整套框架。VSTO发展到现在有几个版本,分别如下
    • VS 2003: VSTO 1.0
    • VS 2005: VSTO 2.0
    • VS 2008: VSTO 3.0
    • VS 2010: VSTO 4.0
    • VSTO 之前的版本有一些不太好的地方是部署,不要小看部署这个环节。如果你曾经花了很多精力写出来了一个很好的插件,但是因为各式各样的部署问题导致没有办法很顺利地分发给你的用户,那种感觉是很让人沮丧的。VSTO的解决方案有相当多的一些环境依赖,另外还需要提升.NET中的安全策略等等。
    • 一个好消息是,现在的新版本中,开发和部署将是相对更加容易了。在开发方面,模板更加好用,也提供了对Ribbon的内置支持,部署方面,我们可以通过ClickOnce技术发布到网站,或者打包成一个vsto压缩包文件,很容易地进行部署。本文我们就来用一个简单例子进行说明。

然后,我们来看看在新版的开发工具中,如何快速高效地开发插件(Add-in)

作为演示,我主要侧重于开发和部署的流程。我们要实现的一个插件,其场景比较简单:

我们需要在Outlook中添加一个新的Ribbon按钮,该按钮点击之后,可以弹出一个窗口,允许我们从Excel文件中导入联系人

那就让我们开始吧

第一步:创建一个Add-in项目

这个项目模板会自动创建下面的项目结构

【备注】在ThisAddin这个类中,可以很方便地访问到Outlook的当前实例,只要使用如下的代码即可

this.Application

第二步:添加一个Ribbon

我们需要为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版本的插件。

原文地址:https://www.cnblogs.com/freeliver54/p/8903866.html

时间: 2024-07-29 04:40:55

[转]VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)的相关文章

部署FIM 2010 R2—1先决条件准备

下面的章节中,我们主要介绍FIM2010 R2在俩个林之间进行密码同步,完美的解决了互联网公司内网开发环境和外网办公环境回来修改密码的问题. 为互联网公司IT环境带来很大的便捷,大大节省了IT管理的成本,提高了IT人员的工作效率和公司网络环境的安全性! 环境介绍: Contoso DC: 10.0.0.1 Contoso Client: 10.0.0.250 Zyliday DC: 20.0.0.1 Zyliday Client: 20.0.0.3 FIM 2010 R2: 10.0.0.29

Window Server 2008 R2 上安装部署 Exchange 2010

最近先来无事,捣鼓捣鼓 Exchange Server 2010 服务的安装和调试. 一,事先规划: 两台服务器,一台域DC ,一台做 Exchange Server: Exchange 2010 此处将所有功能安装在一台机器上. DC                             Exchange Window Server 2008 R2           Window Server 2008 R2 IP  :10.0.0.100                 IP   :10

VSTO 学习笔记(十)Office 2010 Ribbon开发

原文:VSTO 学习笔记(十)Office 2010 Ribbon开发 微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个Ribbon中,便于集中管理.操作.这种Ribbon是高度可定制的,用户可以将自己常用的功能进行单独设置,提高工作效率.但是由于Office 2003时代用户的操作习惯已经养成,结果到了Office 2007很多菜单.按钮都找不到了,着实有些尴尬.经过一段时间的适应,相信大多数用户已经习惯Ribbon

【Smobiler企业APP开发之一】开发环境部署

最近研究了下Smobiler-.net移动开发,对于做企业APP开发Smobiler还是够用的,况且是完全使用C#进行编程,对于使用C#进行程序设计的程序员来说还是很容易上手的. 本章节主要介绍Smobiler开发环境部署问题 由于Smobiler是.net移动开发,那么开发工具首选当然是Visual Studio了,Smobiler的最低要求是Visual Studio 2010及以上版本,.net framework 3.5以上,所以需要先确保电脑上已经安装了Visual Studio和.n

编程实现自动填充Outlook 2010登录密码并登录

1. 问题或需求描述:使用 outlook 2010遇到无法保存密码自动登录的情况(又或者是,想实现用资源管理器快速打开ftp空间等等,本文对你或许有所帮助) 2.解决方法或原理:使用C/C++语言编程实现,核心是消息模拟,用消息(Message)来模拟用户正常的按键与鼠标操作. 3.开发环境:WIN10 + VS2017 4.主要源码: C/C++代码: #include "stdafx.h" #include "MailLogger.h" #include &l

部署FIM 2010 R2——6安装和配置PCNS

部署FIM 2010 R2--6安装和配置PCNS 在所有域控安装安装PCNS 1. 如果第一次安装PSNS需要扩展构架,如果之前安装过PCNS,略过此步骤,扩展构建需要在CMD进入PCNS安装目录中运行"Password Change Notification Service.msi" SCHEMAONLY=TRUE 下载PCNS安装包,首先在每台DC上扩展架构, msiexec /i "C:\Users\Administrator\Desktop\Password Cha

部署FIM 2010 R2—5配置Synchronization Service

部署FIM 2010 R2-配置Synchronization Service 配置多有域环境账户密码同步 在各个域创建ADMA账户,并赋予对域的复制目录更改和复制目录更改所有项权限:和对用户的密码重置和解锁密码权限: 在fim01所使用的DNS服务器上,建立同步密码目标域的DNS条件转发:并测试能正常解析目标域: 确保fim01到目标域的域控制器的TCP和UDP端口389.88.464能双向正常通信: 1.打开Synchronization Service窗口, 2.选择Management

部署FIM 2010 R2—4安装FIM 2010 R2 Synchronization Service

部署FIM 2010 R2-4安装FIM 2010 R2 Synchronization Service 1.打开FIM2010 R2安装控制台,选择"Install Synchronization Service" 2.选择"下一步", 同意许可,选择"下一步", 保持默认, 3.为FIM同步服务指定数据库和实例, 4.为FIM同步服务指定服务账户,如下图,(注:Domain必须写为contoso,而不是contoso.com) 5.使用默认组

部署FIM 2010 R2—3安装FIM 2010 R2 Service and Portal

部署FIM 2010 R2-3安装FIM 2010 R2 Service and Portal 1.打开FIMSplash文件,如下图, 选择"Install Service and Portal", 2.选择"下一步", 选择"下一步", 选择"下一步", 3.选择要安装的角色,这里我们全部安装, 4.为FIM服务器指定SQL 2008数据库服务器名称以及FIM数据库名称,这里使用本地数据库服务,数据库名称使用默认名称, 5