Outlook Interop异常 - 显示新的mailitem

时间:2013-07-23 12:26:27

标签: c# outlook interop

尝试通过Outlook自动生成邮件 -

添加了对Microsoft.Office.Interop.Outlook 14.0.0.0

的引用

它可以在Win 8 / Office 2013 PC上运行,但在Win 7 / Office 2010上失败并出现以下异常。

代码:

Application outlookApp = new Application();
MailItem message = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
message.Subject = "subject";
message.Display(message);
message.HTMLBody = "body" + message.HTMLBody; //to get default signature

例外是:

  

无法将“System .__ ComObject”类型的COM对象强制转换为接口   输入'Microsoft.Office.Interop.Outlook.Application'。这个   操作失败,因为QueryInterface调用COM   与IID接口的组件   由于以下原因,“{00063001-0000-0000-C000-000000000046}”失败   错误:库未注册。 (HRESULT异常:0x8002801D   (TYPE_E_LIBNOTREGISTERED))。

1 个答案:

答案 0 :(得分:0)

解决方案最终成为:

http://www.fieldstonsoftware.com/support/support_gsyncit_2013.shtml

Lync 2013安装在Office 2010之上。这为HKCR \ TypeLib {00062FFF-0000-0000-C000-000000000046}添加了一个注册表项。

该注册表项的子项将是不同的编号文件夹,表示已安装的Office的版本号。 (本案例中为9.4,表示2010年,9.5表示2013年)。一旦删除与Outlook版本不一致的版本号,就会解决该问题。