此添加的代码可用here。演示行为的视频列在本说明的正文中。为方便起见,这里有两个链接 Bug WorkAround
我一直在尝试使用Visual Studio 2013为Outlook 2010和2013编写一个Add In,但是我遇到了一个非常奇怪的错误。这些是重现这个令人难以置信的错误的步骤,当在Outlook中安装add时会发生这种错误。该平台是Windows 7企业版的Outlook 2010
我能证明这一点的最好方法是录制一个可用的小视频here
然而,这不是故事的结尾。它变得更好,更有趣。现在就这样做。
为了说明这种行为,我录制了另一个可用的视频here。
有关此行为的几点注意事项
我已将其缩小为一行代码。在OutlookExplorerWrapper中,如果注释了以下行,则行为将从Outlook 2010中消失
var s = mail.Body;
基本上只是访问MailItem对象上的Body属性会导致此行为。我已经用RTFBody交换了Body,这又让bug消失了。
我真的在我的智慧结束。非常感谢任何帮助!
答案 0 :(得分:-1)
我查看了示例项目,并没有注意到任何用于释放底层COM对象的语句。使用System.Runtime.InteropServices.Marshal.ReleaseComObject释放Outlook对象。然后在Visual Basic中将变量设置为Nothing(C#中为null)以释放对该对象的引用。您可以在MSDN中的Systematically Releasing Objects文章中了解有关该内容的更多信息。
您需要立即在代码中释放基础COM对象。