2009-02-10 57 views
2

我們有一個用VB.NET(CLR 2.0)編寫的WinForms應用程序,它可以處理很多Outlook相關的東西。我們所做的一件事是以編程方式打開一個新的Outlook 2003'撰寫新電子郵件'表單,並預先填入'to'地址。現在.NET/COM Interop問題 - 打開Outlook 2003發送郵件對話框

Me.WordApp = New Word.Application 
Dim template As Object = System.Reflection.Missing.Value 
Dim newTemplate As Object = System.Reflection.Missing.Value 
Dim documentType As Object = Word.WdNewDocumentType.wdNewEmailMessage 
Dim visible As Object = False 
Me.WordDoc = Me.WordApp.Documents.Add(template, newTemplate, documentType, visible) 
'then some other stuff 

,這個完美的作品幾乎無處不在,我們部署應用程序 - 用戶在郵件的標題和正文,點擊發送罷了,我們可以趕上發送事件和做其他的好東西。

只有幾個安裝位置會中斷,而我們無法達到底部。

請問以下給出的是哪裏的問題可能是任何跡象顯示:

Could not load file or assembly 'office, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The located assembly's 
manifest definition does not match the assembly reference. (Exception from HRESULT: 
0x80131040) 

據我們所知,這些都只是Office 2003和安裝,與Outlook和Word,就像在情況下,它工作正常。

我會非常感謝任何想法 - 無論是如何解決這個問題,還是更好的實現相同目標的方法。

回答

1

我有一個類似的Excel 2003加載項的經驗。您是否在開發機器上安裝了Office 2003和Office 2007?如果是這樣,請仔細檢查項目中的參考文獻部分。我對Office 11有依賴性,但在Office 12的互操作程序集下使用。

我認爲Assembly Binding Redirection正在給我帶來麻煩。

編輯:微軟的example projects幫了很多。另外一個問題是某些機器上的安全設置(請參閱示例安裝項目中使用的SetSecurity項目)。

2

好的,這是排序,我感謝Olli his answer,這讓我走上了正軌。

他的「示例項目」鏈接導致我到this link about deploying VSTO solutions

在我發現透露出評論:

「Microsoft Office應用程序安裝主互操作程序集只有當目標計算機具有.NET框架安裝1.1或更高版本。」

燈亮了 - 和我建立了一個虛擬機,在我安裝(按以下順序):

  • XP SP2
  • 的Office 2003(默認安裝)
  • .NET 3.5 SP1(大可再發行)
  • 我的應用程序

賓果 - 問題成爲可重複,就像另一個我は我會去問社區的幫助。正如你可以想象的那樣,當我們所有的計算機和大多數客戶端都安裝了.NET時,.NET已經安裝了,所以通常這根本不是問題。

雖然辦公室重新安裝仍未能解決,但「檢測和修復」安裝也是如此。

但是,「添加功能」安裝允許您手動選擇.NET可編程性支持選項,問題就消失了。

底線:

沒有.NET,沒有主互操作程序集與Office安裝。

再次感謝Olli!

+0

不客氣Chris!老實說,我對開發Office加載項的總體經驗感到失望。通過Visual Studio嚮導看起來很簡單,但部署很痛苦。 – 2009-02-11 14:53:45