2013-08-22 62 views
1

試圖到Outlook自動化作爲展望互操作異常

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();  
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI"); 

並獲得以下異常在第二線即GetNamespace

Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass' to interface type 'Microsoft.Office.Interop.Outlook._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063001-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

我使用.Net Framework 4Outlook 2013

this唯一的解決方案!因爲我正試圖避免對註冊表進行任何更改。

編輯

this沒有解決問題。

編輯 如果引用的庫是Office 15並且安裝的庫是10或12,它會工作嗎?

+0

試圖http://stackoverflow.com/questions/4656360/unable-to-cast-com-object-microsoft-outlook-c-sharp?rq=1 – bjan

回答

0

你試過這個嗎?

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI"); 
+0

是,同樣的錯誤 – bjan

1

異常看起來很明顯,這應該工作

var myApp = new Microsoft.Office.Interop.Outlook.Application(); 

,你就不能得到與上面那行鑄造例外。

+0

獲取名稱空間,例如'myApp.GetNamespace'時拋出異常。但是,我試過這個,並再次拋出異常'var myApp = new Microsoft.Office.Interop.Outlook.Application(); var mapiNameSpace = myApp.GetNamespace(「MAPI」);' – bjan

1

當您安裝了兩個版本的Office並卸載它時,通常會發生此異常。爲仍然安裝的Office運行修復安裝,這應該修復註冊表項。

-1
//DECLARE 
    Microsoft.Office.Interop.Outlook.Application app = null; 
    Microsoft.Office.Interop.Outlook.NameSpace ns = null; 

    //INITIALISE 
    app = new Microsoft.Office.Interop.Outlook.Application(); 
    ns = app.Session; 
+0

毫無疑問。我提供了什麼可能是解決問題的方法:) – TheDanMan

0

對於我來說,9.5版本的修復程序並不適用,因爲沒有過多的9.5字段。

在我的情況下,問題是當我降級到Outlook 2010時,我修改了安裝位置(即不在默認的ProgramFiles文件夾中)。 但是,Windows並未相應更新'HKEY_CLASSES_ROOT \ TypeLib {00062FFF-0000-0000-C000-000000000046} \ 9.4 \ 0 \ win64'中的值。

手動更新該值並將其指向正確的位置後,問題就解決了。

0

我遇到了同樣的錯誤消息,我的問題是我安裝了Office 2016 x64,而試圖調用它的應用程序編譯爲x86。切換到x86 Office 2016解決了我的問題。

0

我被這個問題困住了好幾天。這對我有效:

我剛剛意識到,Outlook 2013是64位...而我的C#應用​​程序已在項目屬性 - 「生成」任何CPU「作爲平臺目標和一個複選標記」首選32位」。

我將平臺目標更改爲x64,它工作!

-1

給我刪除9。從這個註冊表項5作品:

HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}