【问题标题】:Outlook Interop exception - displaying new mailitemOutlook 互操作异常 - 显示新邮件项
【发布时间】:2023-04-10 07:36:01
【问题描述】:

尝试通过 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”。这 操作失败,因为 COM 上的 QueryInterface 调用 带有 IID 的接口组件 “{00063001-0000-0000-C000-000000000046}”由于以下原因而失败 错误:库未注册。 (来自 HRESULT 的异常:0x8002801D (TYPE_E_LIBNOTREGISTERED))。

【问题讨论】:

  • 这个例外提供了很多关于如何解决它的信息。您是否在 (TYPE_E_LIBNOTREGISTERED) 上查找过任何内容?

标签: c# outlook interop


【解决方案1】:

解决方案最终是:

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版本不一致的版本号,就解决了。

【讨论】:

  • 此处不赞成仅链接的答案。请总结链接。
猜你喜欢
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 2016-02-02
  • 2021-07-07
  • 2020-09-28
相关资源
最近更新 更多