COM加载项>正确处理对象

问题描述 投票:-1回答:1

在Outlook加载项中,对象似乎保留在内存中。因此,当Outlook中的加载项处于活动状态时,.eml文件只能打开一次。当第二次尝试时,我得到:

We can't open [filename]. It's possible the file is already open, or you don't have permission to open it ...

禁用外接程序后,可以多次打开.eml文件,而不会出现任何问题。在外接程序代码中,我在多个位置放置了Marshal.FinalReleaseComObject(obj),但没有帮助。该代码相当长,并且分布在多个文件中。可能是我错过了发布。

有什么方法可以轻松地解决这种情况并找出根本原因。

vsto outlook-addin marshalling
1个回答
0
投票

尝试注释掉大部分代码,然后每次返回几行,直到问题再次出现。

作为大锤解决方案,请在完成后尝试调用GC.Collect()。

© www.soinside.com 2019 - 2024. All rights reserved.