Outlook Interop异常

时间:2013-08-22 06:35:24

标签: c# com outlook office-interop com-interop

尝试将Outlook自动化为

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

并在第二行获得以下异常,即GetNamespace

  

无法转换类型的COM对象   'Microsoft.Office.Interop.Outlook.ApplicationClass'到接口类型   'Microsoft.Office.Interop.Outlook._Application'。这个操作   失败,因为QueryInterface调用了COM组件   与IID'{00063001-0000-0000-C000-000000000046}'的接口失败   由于以下错误:不支持此类接口(例外   来自HRESULT:0x80004002(E_NOINTERFACE))。

我正在使用.Net Framework 4Outlook 2013

this是唯一的解决方案!因为我试图避免对注册表进行任何更改。

修改

this没有解决问题。

修改 如果引用的库是Office 15,并且已安装的库是10或12,它会起作用吗?

10 个答案:

答案 0 :(得分:2)

我被这个问题困扰了好几天。这对我有用:

我刚刚意识到Outlook 2013是64位...我的C#应用​​程序已经在项目属性中 - >构建"任何CPU"作为平台目标和'#34;首选32位"。

中的复选标记

我将平台目标更改为x64并且有效!

答案 1 :(得分:1)

异常看起来很明显,这应该可行

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

你只是无法使用上面的那一行获得强制转换异常。

答案 2 :(得分:1)

当您安装了两个版本的Office然后卸载了一个版本时,通常会发生此异常。为您仍然安装的Office运行修复安装,这应该修复注册表项。

答案 3 :(得分:0)

你试过这个吗?

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

答案 4 :(得分:0)

9.5版本的修复程序对我不起作用,因为没有超过9.5的字段。

就我而言,问题是当我降级到Outlook 2010时,我修改了安装位置(即不在默认的ProgramFiles文件夹中)。 但是,Windows没有相应地更新'HKEY_CLASSES_ROOT \ TypeLib {00062FFF-0000-0000-C000-000000000046} \ 9.4 \ 0 \ win64'中的值。

手动更新值并将其指向正确的位置后,问题就解决了。

答案 5 :(得分:0)

我遇到了完全相同的错误消息,我的问题是我安装了Office 2016 x64,而试图调用它的应用程序编译为x86。切换到x86 Office 2016解决了这个问题。

答案 6 :(得分:0)

我也有这个问题。我使用Mobisynapse桌面应用程序更新我的Android日历和联系人。我决定使用Office 2010升级到Office2016。看到它是Office 365产品后,我将其卸载了。这导致注册表将Office 2010主互操作程序集从32位更改为64位。 Mobisynapse MB4Outlook开始报告同步错误“同步失败”。 Mobisynapse – Moffice错误19/3/31 同步失败–桌面出现问题–在桌面上 当我单击“自动同步”设置时,将显示“请先更新MB4Outlook加载项”。

当您尝试使用64位并且安装了32位Office 2007-2013的Office365产品时,就会出现此问题的解决方案。 步骤1:卸载Office xxxx主互操作程序集。如果找不到软件包,请从此处下载。 https://www.microsoft.com/en-US/Download/confirmation.aspx?id=3508安装。 步骤2:运行Office xxxx安装并选择修复。 步骤3:重新启动,它应该可以解决问题。

答案 7 :(得分:0)

完全相同的地方出现相同的错误:

Outlook.NameSpace ns = application.GetNamespace("MAPI");

我有一个Win 10和Office 365(均为64位),以前没有安装Office;我尝试了以上几种解决方案,但也无法快速修复Office。
运行Office在线修复后,它的功能就像一个超级按钮。

答案 8 :(得分:-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;

答案 9 :(得分:-1)

对于我从此注册表中删除9.5条目的工作原理:

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