[转】:VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)
VS 2010 : 如何開(kāi)發(fā)和部署Outlook
2010插件(Add-in)?
轉(zhuǎn)自:?http://guofblog.blog.163.com/blog/static/168088614201062455332296/| -- |
這篇文章,我將通過(guò)一個(gè)簡(jiǎn)單的例子,給大家分享一下如何在VS 2010中開(kāi)發(fā)和部署Outlook
2010的插件(Add-in)
首先,我要說(shuō)一下什么是插件(Add-in)
插件一般是對(duì)現(xiàn)有程序的擴(kuò)展,微軟的Office系統(tǒng)公開(kāi)了一套接口,可以很方便地讓開(kāi)發(fā)人員基于這些接口去實(shí)現(xiàn)對(duì)Office應(yīng)用程序的增強(qiáng)。這個(gè)接口,準(zhǔn)確地說(shuō),就是Extensibility.IDTExtensibility2.
當(dāng)然,除了Office,有很多應(yīng)用程序都支持類似的擴(kuò)展機(jī)制,例如IE,以及Visual
Studio本身,都支持一定程序的擴(kuò)展。
其次,我要說(shuō)一下以前是怎么開(kāi)發(fā)插件Add-in的
開(kāi)發(fā)Office插件(Add-in)的途徑有各種各樣的,我大致總結(jié)分為三類:
VBA
開(kāi)發(fā):這個(gè)是基于Visaul Basic for
Application這套開(kāi)發(fā)模型做的一些定制。這種定制的限制比較多一些,但開(kāi)發(fā)難度相對(duì)來(lái)說(shuō)更加低一些。做過(guò)VBA開(kāi)發(fā)的朋友都知道,VBA是脫離不了應(yīng)用程序本身的。例如Excel的VBA編輯器如下圖所示
VC++,Visual
Basic開(kāi)發(fā):這種開(kāi)發(fā)方式允許我們?cè)赩C++,或者VB
6中,直接實(shí)現(xiàn)Extensibility.IDTExtensibility2這套接口,并且可以更加靈活,做更加強(qiáng)大的一些定制。目前的Office應(yīng)用程序中,默認(rèn)就安裝好了的一些插件,都是這種方式做的。例如下圖是我的Outlook默認(rèn)安裝的一些插件列表
【備注】很早之前,我也用VB 6做過(guò)這方面的開(kāi)發(fā)。但現(xiàn)在基本連VB
6的安裝程序都找不到了。所以這里就不截圖了,其實(shí)就是有一個(gè)項(xiàng)目模板,然后實(shí)現(xiàn)接口。開(kāi)發(fā)這種插件,關(guān)鍵在于對(duì)Office本身內(nèi)部的一些對(duì)象模型熟悉。
VSTO開(kāi)發(fā):所謂VSTO,全稱是Visual
Studio Tools for Office.我記得是從VS 2003開(kāi)始提供了VSTO
1.0,簡(jiǎn)而言之,就是允許在.NET的開(kāi)發(fā)環(huán)境中開(kāi)發(fā)Office應(yīng)用程序或者插件。這種方式有著顯而易見(jiàn)的好處,就是能力增強(qiáng),因?yàn)榭梢杂玫?NET的整套框架。VSTO發(fā)展到現(xiàn)在有幾個(gè)版本,分別如下
VS 2003: VSTO 1.0
VS 2005: VSTO 2.0
VS 2008: VSTO 3.0
VS 2010:
VSTO 4.0
VSTO
之前的版本有一些不太好的地方是部署,不要小看部署這個(gè)環(huán)節(jié)。如果你曾經(jīng)花了很多精力寫出來(lái)了一個(gè)很好的插件,但是因?yàn)楦魇礁鳂拥牟渴饐?wèn)題導(dǎo)致沒(méi)有辦法很順利地分發(fā)給你的用戶,那種感覺(jué)是很讓人沮喪的。VSTO的解決方案有相當(dāng)多的一些環(huán)境依賴,另外還需要提升.NET中的安全策略等等。
一個(gè)好消息是,現(xiàn)在的新版本中,開(kāi)發(fā)和部署將是相對(duì)更加容易了。在開(kāi)發(fā)方面,模板更加好用,也提供了對(duì)Ribbon的內(nèi)置支持,部署方面,我們可以通過(guò)ClickOnce技術(shù)發(fā)布到網(wǎng)站,或者打包成一個(gè)vsto壓縮包文件,很容易地進(jìn)行部署。本文我們就來(lái)用一個(gè)簡(jiǎn)單例子進(jìn)行說(shuō)明。
然后,我們來(lái)看看在新版的開(kāi)發(fā)工具中,如何快速高效地開(kāi)發(fā)插件(Add-in)
作為演示,我主要側(cè)重于開(kāi)發(fā)和部署的流程。我們要實(shí)現(xiàn)的一個(gè)插件,其場(chǎng)景比較簡(jiǎn)單:
我們需要在Outlook中添加一個(gè)新的Ribbon按鈕,該按鈕點(diǎn)擊之后,可以彈出一個(gè)窗口,允許我們從Excel文件中導(dǎo)入聯(lián)系人
那就讓我們開(kāi)始吧
第一步:創(chuàng)建一個(gè)Add-in項(xiàng)目
這個(gè)項(xiàng)目模板會(huì)自動(dòng)創(chuàng)建下面的項(xiàng)目結(jié)構(gòu)
【備注】在ThisAddin這個(gè)類中,可以很方便地訪問(wèn)到Outlook的當(dāng)前實(shí)例,只要使用如下的代碼即可
this.Application第二步:添加一個(gè)Ribbon
我們需要為Outlook添加一個(gè)新的Ribbon按鈕,事實(shí)上這很容易做到。
我們選擇Ribbon(Visual Designer),這樣就可以在可視化界面中設(shè)計(jì)了
我們首先需要設(shè)置一下,這個(gè)Ribbon是在什么地方要顯示。在下圖中,我們將RibbonType修改為Microsoft.Outlook.Explorer,這樣的意思是說(shuō),我們這個(gè)Ribbon是現(xiàn)在在Outlook默認(rèn)的那個(gè)管理器窗口中的
接下來(lái),我們可以添加一個(gè)按鈕到group1中去。工具箱中有很多可用的控件
我最好做好的Ribbon看起來(lái)像下面這樣
第三步:實(shí)現(xiàn)簡(jiǎn)單的邏輯
接下來(lái),我們可以為這個(gè)按鈕實(shí)現(xiàn)簡(jiǎn)單的邏輯
通過(guò)雙擊該按鈕,會(huì)產(chǎn)生一個(gè)事件處理器
我簡(jiǎn)單地實(shí)現(xiàn)代碼如下
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(); } } }第四步:調(diào)試
完成如上的操作之后,一個(gè)最簡(jiǎn)單的Add-in就做好了。那么如何進(jìn)行調(diào)試呢?
沒(méi)錯(cuò),直接按F5就可以進(jìn)行調(diào)試了。此時(shí),Outlook會(huì)自動(dòng)打開(kāi),然后我們的Ribbon也確實(shí)能看到了
點(diǎn)擊該按鈕,我們也確實(shí)可以看到一個(gè)窗口被顯示出來(lái)了
同時(shí),我們?cè)贠utlook的選項(xiàng)對(duì)話框中也能看到這個(gè)插件的信息
第五步:發(fā)布
如果我們?cè)诒緳C(jī)做好了調(diào)試,那么如何分發(fā)給用戶呢?以前我們一般會(huì)制作一個(gè)MSI的安裝程序,現(xiàn)在你依然可以這么做。但我今天主要介紹的是一種更加方便的部署方式,就是通過(guò)ClickOnce技術(shù)發(fā)布到網(wǎng)站或者文件夾中。
【注意】這里的location是可以有下面幾種的。但我這里保持默認(rèn)的選擇,直接發(fā)布到一個(gè)文件夾
發(fā)布如果沒(méi)有遇到什么錯(cuò)誤的話,會(huì)生成下面的一個(gè)目錄
我們一般可以將這個(gè)目錄,打包給用戶即可。
第六步:安裝
接下來(lái),用戶如果拿到了這些文件,應(yīng)該如何安裝使用呢?其實(shí)也很簡(jiǎn)單,它可以雙擊setup.exe,或者設(shè)置直接雙擊vsto文件也可以
一般情況下,會(huì)有一個(gè)提示。
點(diǎn)擊“install”
然后,我們?cè)偃ゴ蜷_(kāi)Outlook的話,仍然是可以看到這個(gè)Add-in以及它所添加的Ribbon的
第七步:卸載
最后,如果用戶需要卸載這個(gè)插件,應(yīng)該怎么做呢?
他們可以在Programs and
Features窗口中,找到這個(gè)插件,然后點(diǎn)擊“Uninstall”即可
總結(jié)
通過(guò)本文的簡(jiǎn)單實(shí)例,大家可以了解到在VS 2010中開(kāi)發(fā)Outlook
2010插件相比較之前而言,有了很大的一些改進(jìn)。當(dāng)然,VS 2010也可以開(kāi)發(fā)Office 2007版本的插件。
淘寶面試題:如何充分利用多核CPU,計(jì)算很大的List中所有整數(shù)的和(轉(zhuǎn))
歷史上的今天
相關(guān)文章
最近讀者
登錄后,您可以在此留下足跡。
floating
neusoftr
qdechoch
machoe
sh_l_sun
toto_80
cxgeng19
uiryangm
評(píng)論
點(diǎn)擊登錄|昵稱:
取消
驗(yàn)證碼:換一張
上一頁(yè) 1...
-1-1-1-1-1-1-1...
-1下一頁(yè)
總結(jié)
以上是生活随笔為你收集整理的[转】:VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle修改数据库为非归档模式
- 下一篇: 使用反射操作Array类型