1

尝试将 Outlook 自动化为

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

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

无法将类型为“Microsoft.Office.Interop.Outlook.ApplicationClass”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Outlook._Application”。此操作失败,因为 IID 为“{00063001-0000-0000-C000-000000000046}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .

我正在使用.Net Framework 4Outlook 2013

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

编辑

并没有解决问题。

编辑 如果引用的库是 Office 15 并且安装的库是 10 或 12,它会工作吗?

4

10 回答 10

3

我已经被这个问题难住了好几天。这对我有用:

我刚刚意识到 Outlook 2013 是 64 位的......而且我的 C# 应用程序在项目属性中具有 -> 构建“任何 CPU”作为平台目标,并在“首选 32 位”中选中了一个复选标记。

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

于 2016-08-31T15:39:12.267 回答
2

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

于 2013-09-04T06:21:00.813 回答
1

异常看起来很明显,这应该有效

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

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

于 2013-08-23T13:39:28.860 回答
0

你试过这个吗?

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
于 2013-08-22T10:39:06.203 回答
0

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

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

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

于 2015-02-14T18:46:20.303 回答
0

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

于 2016-01-05T01:46:07.030 回答
0

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

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

于 2019-03-31T19:07:35.627 回答
0

同样的错误在同一个地方:

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

我有一个 Win 10 和 Office 365 - 都是 64 位 - 以前没有安装过 Office;我尝试了上面的几种解决方案,也做了Office快速修复,但无济于事。
运行 Office 在线修复后,它的功能就像一个魅力。

于 2020-01-13T17:05:25.110 回答
-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;
于 2014-12-17T10:32:51.587 回答
-1

对我来说,从此注册表中删除 9.5 条目有效:

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

于 2017-07-14T11:11:39.663 回答