我想要做的是向winform客户端添加一个“电子邮件至...”按钮,该客户端打开一个新的Outlook邮件窗口并附加一个文件,以便用户可以转发它。如果 Outlook 尚未运行,我可以让 Outlook 集成正常工作。这是一个 C# .NET 4.0 winforms 应用程序,使用 Outlook 14.0 互操作库,针对在 Windows 7 64 位计算机上运行的 Outlook 2010 32 位。由于其他原因,我已经将应用程序编译为 x86,所以我怀疑它是 32/64 位问题。这是我的代码:
// Connect to outlook and create a new mail item
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem);
// create the mail item and attach the file
mailItem.To = "";
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath);
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem);
// show the email dialog window
mailItem.Display(true);
如果 Outlook 没有运行,它可以完美运行。打开后,我在尝试创建 Outlook.Application 对象的第一行出现以下错误:
由于以下错误,检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005 服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))。
有什么想法会导致这种情况吗?这是某种版本的冲突吗?