首页 > 解决方案 > HRESULT 异常:0x80004004 (E_ABORT)

问题描述

我正在使用 c# 处理 VSTO Outlook AddIn 项目,并尝试使用以下方法在 Outlook 中添加 DocumentItem -

    protected void CreateWordDocument(string strPhysicalFilePath, Outlook.Folder ParentFolder)
    {

        Outlook.DocumentItem objDocItem = null;
        Outlook.Attachment objAtt = null;

        try
        {


            objDocItem = ParentFolder.Items.Add("IPM.Document");
            objAtt = objDocItem.Attachments.Add(strPhysicalFilePath, );

            objDocItem.Subject = objAtt.FileName;

            string strFileType = Path.GetExtension(strPhysicalFilePath, );

            switch (strFileType)
            {
                case ".doc":
                case ".docx":
                    objDocItem.MessageClass = "IPM.Document.Word.Document.8"; break;
                case ".xls":
                case ".xlsx":
                    objDocItem.MessageClass = "IPM.Document.Excel.Sheet.8"; break;
                case ".pps":
                case ".ppt":
                case ".pptx":
                    objDocItem.MessageClass = "IPM.Document.PowerPoint.Show.8"; break;
                case ".txt":
                    objDocItem.MessageClass = "IPM.document.txtfile"; break;
            }

            objDocItem.Save();

        }
        catch (Exception ex)
        {
            ErrorLog.WriteError("ClassName", "CreateWordDocument()", ex.Message);               
        }
        finally
        {
            if (objDocItem != null) Marshal.ReleaseComObject(objDocItem);
            if (objAtt != null) Marshal.ReleaseComObject(objAtt);               
        }

    }

但在“ objDocItem = ParentFolder.Items.Add("IPM.Document"); 行出现以下错误

VSTO Outlook 插件中的 outlook.Items.Add() 中的操作中止(HRESULT 异常:0x80004004 (E_ABORT))。

相同的代码在我的计算机上运行良好,但在另一台计算机上出现此错误。

标签: c#.netoutlookvstooutlook-addin

解决方案


我找到了解决方案 - 目标平台 32 位或 64 位存在问题。我在那里遇到异常的机器安装了 64 位 Office,我的 Outlook 插件安装程序是在 32 位平台中构建的。我已经重新编译并构建了带有 64 位目标平台的安装程序并安装在该机器上。现在它工作正常。


推荐阅读