【问题标题】:VSTO Outlook Add In ProblemVSTO Outlook 插件问题
【发布时间】:2010-12-10 07:55:18
【问题描述】:

我在创建 Outlook 插件时遇到问题。不知何故,Outlook 无法正常关闭。我看过所有关于使用 ReleaseComObject 等的帖子。

==== 更新 ====

我再次尝试了整个过程,在新解决方案中创建了一个新的空项目,现在,在关闭 Outlook 一段时间后,Visual Studio 中向我显示了以下错误消息。不知何故,我认为我必须在以前的解决方案中禁用了该异常。我不知道这意味着什么(还),但我会去打猎。也许这会对这个问题有所启发?效果还是一样:Outlook 没有关闭。

检测到 ContextSwitchDeadlock 消息:CLR 在 60 秒内无法从 COM 上下文 0x55cdd8 转换到 COM 上下文 0x55cf48。拥有目标上下文/单元的线程很可能要么进行非泵送等待,要么处理非常长时间运行的操作而不泵送 Windows 消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随着时间的推移不断累积。为避免此问题,所有单线程单元 (STA) 线程都应使用泵送等待原语(例如 CoWaitForMultipleHandles)并在长时间运行的操作期间定期泵送消息。

此外,当我在未处于安全模式时(例如已加载)尝试删除插件时,Oulook 在按下安全中心的删除按钮时会锁定)。猜猜这也是同样的原因。

===== 更新结束 ====

为了调试正在发生的事情,我做了可以想象的最简单的事情:

1) 我使用 Visual Studio 2008 创建了一个新的 Outlook 2007 插件项目

2) 我使用新插件启动了调试器。

3) 一段时间后,我关闭了 Outlook,希望它能正常关闭。

它没有。代码确实到达了生成的 ThisAddIn_Shutdown 方法。但是,Outlook 不会关闭。

为了确保我没有完全发疯,我下载、编译并尝试了在http://code.msdn.microsoft.com/ContosoAutoOBA 找到的广泛示例。使用此插件具有相同的效果:Outlook 不会关闭。

我在没有其他可用插件的情况下尝试了这个:这没有任何区别。

仅作记录,您可以在下面找到生成的代码。

我使用的是 Windows 7、Visual Studio 2008、Office 2007,所有更新都已安装。

是否有某人可以对此有所启发。非常感谢您的帮助。

谢谢,

巴特

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
namespace OutlookAddIn3
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
        }
        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
        }
    #region VSTO generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
    #endregion
    }
}

【问题讨论】:

  • 您是否安装了任何其他插件(可能在不知不觉中,请查看确定)?

标签: outlook vsto add-in


【解决方案1】:

啊,VSTO 开发的日子!

凭记忆 - 解决这个问题:

  1. 关闭所有正在运行的 Outlook 实例(任务管理器、结束进程)
  2. 使用 VS.NET 中的调试按钮启动应用程序

凭记忆;当已经有一个实例在运行时,它会播放一点。

【讨论】:

  • 恐怕不是这样。在 Visual Studio 之外启动时也存在此问题。我按按钮还是按F5都没关系。
【解决方案2】:

首先。 您正在运行哪个版本的 Office 服务包。 SP2 中有大量修复程序可帮助关闭。

你是说如果你没有安装插件,outlook 就可以关闭吗? 我想知道您是否安装了其他任何 inder 信任中心。 ?

【讨论】:

  • 我运行的是 SP2,Windows 也是最新的。是的,如果我没有安装插件,Outlook 会正常关闭。我还尝试从信任中心删除所有其他内容。那没有帮助。我在另一台电脑上试过,效果一样。安装该空插件只会阻止 Outlook 关闭。
【解决方案3】:

Microsoft CRM 插件似乎是问题所在。我之前禁用了它(实际上禁用了所有 Outlook 插件),但显然这还不够。实际上从我的计算机中删除它解决了这个问题。

似乎有 Microsoft CRM 插件的更新 7 汇总,但它拒绝安装在我的机器上。唉,至少我可以继续使用我自己的 Outlook 插件。从现在开始,我将把它贴在我的屏幕上,作为我的新 CRM 系统。

【讨论】:

  • 是的,您必须删除它们,因为有些会按需加载。加德你得到了排序
猜你喜欢
  • 2016-02-09
  • 2015-02-06
  • 2019-01-21
  • 1970-01-01
  • 2018-12-24
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多