【问题标题】:VSTO addin crash OutlookVSTO 插件崩溃 Outlook
【发布时间】:2019-01-21 11:19:33
【问题描述】:

我需要循环所有 Outlook 项目并搜索完全填充正则表达式模式的字符串,包括所有附件。
我知道这是一个很大的操作,需要很多资源,但是这个项目是需要这样做的。 我设法制作了一个可以做到这一点的 VSTO 插件,但问题是插件有时会导致 Outlook 挂起。这不是一个好的业务解决方案,它运行不稳定。 在我的代码中,我确保在使用 COM 对象后关闭它。

outlookItem.Close(OlInspectorClose.olDiscard); Marshal.ReleaseComObject(outlookItem);

附件在使用后转换为蒸汽并丢弃。 string AttachSchema = "http://schemas.microsoft.com/mapi/proptag/0x37010102"; byte[] filebyte = null;
PropertyAccessor pacc = attachment.PropertyAccessor; filebyte = (byte[])pacc.GetProperty(AttachSchema);
Stream stream = new MemoryStream(filebyte);

任何人都可以提供一些关于如何使插件稳定的建议?

【问题讨论】:

    标签: vsto outlook-addin


    【解决方案1】:

    首先,访问PR_ATTACH_DATA_BIN(或任何其他大型PT_BINARY 属性)可能无法使用PropertyAccessor 对象(尤其是在在线模式下),因此您最好使用Attachment.SaveAsFile,然后将文件加载到如有必要,内存(或内存映射文件)。

    其次,请记住,您只能在主 Outlook 线程上使用 OOM。要在辅助线程上运行代码,您需要扩展 MAPI(仅限 C++ 或 Delphi)或 Redemption(其 RDO 对象系列可用于辅助线程)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2010-09-25
    • 2018-12-24
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多