2009-02-02

Office Addin 開發經驗 (using VSTO)

因為Office為常用的辦公室軟體工具
懶得做重複事情的我 當然會想看看 到底有沒有辦法在 Office 的應用裡面 加上我自已的功能
用來處理一些很Routine、重複操作的事情 ?

其實 以前已經有使用 VBA 來客製化 Excel, Word 的功能

不過,必竟 VBA 的 DEBUG 相當的麻煩,且開發環境較不便利、語言也較不熟悉

所以,找到了另一個方法

透過 VSTO(Visual Studio Tool For Office Development)這工具
即可透過 VS 2005 用自已喜歡的語言 來開發 Office Addin

*** 開發的過程中,只要新增一個 Office Addin 的專案,再依 office object model (寫的很差的一堆文件)來開發即可



*** 安裝的過程,會比較麻煩,先簡單列出我遇到的問題
1. 開發時 用Debug mode執行的話,addin 可順利裝至 outlook

2. 開發完時,用 install 的 .msi 檔案 install 完後啟動outlook,發現 addin 無法順利載入,但又無對應的 Error Message 用來除錯,經過我在網路上尋找一些答案後,就我遇到的問題,分別說明解法如下:

a. DEBUG方法: 在 deploy 到 outlook 測試時,若 addin 有問題 or 無法載入,其實 根本看不到啥錯誤訊息,此時 可在系統環境變數加上,相關的訊息就會 show出、Log起來,這個功能 實在非常有用哦 :)

SET VSTO_LOGALERTS = 1
SET VSTO_SUPPRESSDISPLAYALERTS = 0

b. Client 要安裝 Microsoft Visual Studio 2005 Tools for Office Runtime
否則,outlook 沒有辦法存取要 load addin 用的 proxy 檔案
C:\Program Files\Common Files\Microsoft Shared\VSTO\8.0\AddinLoader.dll

Download Url: http://www.microsoft.com/downloads/details.aspx?familyid=F5539A90-DC41-4792-8EF8-F4DE62FF1E81&displaylang=en

c. Client 端的Office要安裝 .Net 程式設計支援 (安裝 office 時 預設沒裝)
否則,會遇到 遇到下列問題: Could not load file or assembly 'Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. 系統找不到指定的檔案。



d. Client 要grant(允許) 該 addin 的執行,以我為例 我是到 .Net Framework 2.0 的目錄下,下這樣的 command

---> cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>
---> caspol -u -ag All_Code -url C:\Program Files\USR\MinChuan_OutlookAddinSetup\* FullTrust -n "MinChuan_OutlookAddin" -d "This is MinChuan_OutlookAddin"

否則 會遇到下列問題:
Could not load file or assembly 'MinChuan_OutlookAddin, Version=1.0.0.0, Culture=neutral,

PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from

HRESULT: 0x80131418)

e. Client 要安裝 .Net Framework 2.0

*** 參考資料 ***

  • MSDN 裡面, search VSTO or outlook, excel, word ... 等,可以找到一些範例

沒有留言: