在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),但没有帮助。该代码相当长,并且分布在多个文件中。可能是我错过了发布。
有什么方法可以轻松地解决这种情况并找出根本原因。
尝试注释掉大部分代码,然后每次返回几行,直到问题再次出现。
作为大锤解决方案,请在完成后尝试调用GC.Collect()。