因為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 ... 等,可以找到一些範例
沒有留言:
張貼留言