尝试将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 4
和Outlook 2013
。
this是唯一的解决方案!因为我试图避免对注册表进行任何更改。
修改
this没有解决问题。
修改 如果引用的库是Office 15,并且已安装的库是10或12,它会起作用吗?
答案 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}