在.Net 中參考 OWC11 元件

  • 13585
  • 0
  • .Net
  • 2009-08-30

最近因為專案需要在VB.Net 中使用樞紐分析表(Microsoft Office PivotTable 11.0),
所以參考了OWC11元件,但是卻發生了幾個問題...

其實問題的原因說穿了很簡單,由於.Net 程式要使用ActiveX或是COM元件時,必需要做些處理,
而微軟針對.Net程式引用OWC元件有推出Office 2003 PIA,但是網路上的說明卻不多,所以紀錄一下並供大家參考。

最近因為專案需要在VB.Net 中使用樞紐分析表(Microsoft Office PivotTable 11.0),
所以參考了OWC11元件,但是卻發生了幾個問題...

  1. 元件版本不同,導致同事的電腦無法建置專案。
  2. 兩台電腦開啟專案時,發現引用的參考不同,(甚至是同台電腦不同專案參考也不同...)。

其實兩個問題的原因說穿了很簡單,由於.Net 程式要使用ActiveX或是COM元件時,必需要做些處理 (請參考COM Interop),
而微軟針對.Net程式引用OWC元件有推出Office 2003 PIA,但是網路上的說明卻不多,所以紀錄一下並供大家參考:

第一個原因是元件的版本不同,由於同事安裝的是OWC11 1.1版,我裝的是1.0版,所以導致同事在開啟我的專案時,
會發生參考失敗。

第二個原因在加入OWC11參考時,.Net專案會自動加入OWC11 與 AXOWC11 的參考,
如果你沒有安裝Office 2003 PIA 的話,會導致.Net 不知道要參考哪一個,也就會造成同樣的專案
在A電腦、B電腦各自引用不同的參考,進而發生建置失敗。

所以不管你電腦有沒有安裝過OWC11 或是 Office 2003 PIA,如果你想在.Net程式中使用OWC11的元件,
請Fllow下面的安裝程序,以確保開發環境正常無虞。

1.到控制台移除office 2003 web元件。(若已安裝的話)

2.到控制台移除office 2003 web元件 PIA。(若已安裝的話)

3.將C:\Program Files\Common Files\Microsoft Shared\Web Components\中,"11"的資料夾刪除。
(這點很重要,不刪除的話.Net 參考OWC11的版本還是會錯亂,應該是安裝OWC時不會覆蓋OWC11.dll的緣故)

4.重新開機

5.安裝 office2003 web元件
(請安裝office光碟中的OWC11,因為這版的才是1.0版,OWC11.dll的版本會是11.0.XXXX,
目前微軟網路上下載的都是1.1版,OWC11.dll 的版本為12.0.XXX)

會這樣要求是因為我的VB6專案也有參考OWC11,但是是引用11.0.XXX的OWC11.dll,如果我使用12.0.XXX版時,
會造成我VB6 的專案無法開啟...所以如果你是第一次使用OWC11,那恭喜你,你的問題會少一點XD,
可以直接安裝1.1版 ( 12.0.XXX ),也就是現在微軟網路下載的版本。

6.安裝Office2003 PIA

7.完成。

另外專案在發行時,由於參考OWC11時,專案會連帶參考adodb.dll、MSDATASRC.dll、mscomctl.dll、stdole.dll
所以請將這些dll設定為複製到本機,不然使用者安裝時會發生無法安裝的問題。

另外如果使用者沒有安裝OWC11的話,也需要另外安裝OWC11,不然他也沒辦法使用。