试图将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 4和Outlook 2013。
this是唯一的解决方案!因为我试图避免对注册表做任何更改。
编辑
this没有解决这个问题。
编辑如果引用的库是Office 15,而安装的库是10或12,它能工作吗?
发布于 2016-08-31 15:39:12
我被这个问题困扰了好几天了。这对我起了作用:
我刚刚意识到2013年展望是64位.我的C#应用程序在Properties ->中将“任意CPU”作为平台目标,并在“偏好32位”中添加了一个复选标记。
我将平台目标更改为x64,它成功了!
发布于 2013-09-04 06:21:00
此异常通常发生在安装了两个版本的Office,然后卸载一个版本时。为仍然安装的Office运行修复安装,这将修复注册表项。
发布于 2013-08-23 13:39:28
异常情况看起来很明显,这应该有效。
var myApp = new Microsoft.Office.Interop.Outlook.Application();你就是不能得到上面那一行的强制异常。
https://stackoverflow.com/questions/18373260
复制相似问题