在应用插件修复程序菜单项单击“问题”后,Outlook 2007进程仍未终止

本文关键字:Outlook 2007 进程 终止 问题 插件 应用 程序 单击 菜单项 | 更新日期: 2023-09-27 18:03:06

对于使用WPF的Outlook 2007 VSTO插件,我遇到了这里描述的问题。我应用了提议的解决方案并进行了一些调整因为我有多个菜单和上下文菜单。这解决了问题,但它会导致Outlook.exe进程在Outlook关闭时保持运行。Outlook窗口关闭,但该进程仍然存在,无法再次启动Outlook。什么好主意吗?

在应用插件修复程序菜单项单击“问题”后,Outlook 2007进程仍未终止

Outlook窗口关闭,但该进程仍然存在,阻止Outlook再次启动。什么好主意吗?

确保代码中释放了所有底层COM对象。使用System.Runtime.InteropServices.Marshal.ReleaseComObject来释放一个Outlook对象。然后在Visual Basic中设置一个变量为Nothing (c#中为null)来释放对对象的引用。在MSDN的系统释放对象文章中了解更多信息。

我们通过执行

解决了这个问题
Dispatcher.ExitAllFrames();

在UserControl的Unloaded事件处理程序中,因为我们注意到总是有DispatcherFrame在运行。

此外,通过注册GotFocus和LostFocus事件处理程序为每一个单一的菜单项,而不是整个菜单或ContextMenu,我们修复了第一次点击第一个菜单项不被处理的问题。