2009-10-27 76 views
0

我遇到了Outlook创建的问题。不知何故Outlook不能正常关闭。我已经看过关于使用ReleaseComObject等的所有贴子。VSTO Outlook添加问题

==== ==== UPDATE

我再次尝试了整个事情,关闭Outlook中出现以下错误信息呈现给后创造了一个新的解决方案一个新的空项目,现在,一段时间后,我在Visual Studio中。不知何故,我认为我必须在先前的解决方案中禁用这个例外。我不知道它是什么意思(但),但我会去寻找。也许这会对这个问题有所启发?效果仍然相同:Outlook不关闭。

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

另外,当我尝试删除不在安全模式(例如,它已被加载)的安全模式下的加入时,Oulook在安全中心点击删除按钮时锁定)。猜猜这是同样的原因。

UPDATE ====的

===== END

要调试这是怎么回事我也可以想象到的最简单的事情:

1)使用Visual Studio 2008年,我创建了一个新的Outlook 2007中添加项目

2)我过了一段时间我关闭Outlook中开始调试,在新的补充。

3),期待它正确地关闭。

它没有。该代码确实到达了生成的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 
    } 
} 
+0

你有没有安装任何其他的AddIns(可能在不知不觉中,看看确定)? – 2009-10-27 19:00:53

回答

0

阿VSTO开发的天!

从存储器 - 修正此:

  1. 关闭Outlook运行(任务管理器,结束进程)的所有实例
  2. 开始通过在VS.NET
使用调试按钮应用

来自内存;当已经有一个实例运行时,它会显示一些内容。

+0

恐怕不是这样。在Visual Studio之外启动时,问题也存在。如果我按下按钮或按F5,则无关紧要。 – 2009-10-27 07:35:03

0

首先。 您正在运行的是哪个版本的Office Service Pack。 SP2中有许多修补程序可帮助关闭。

你是说如果你没有插件安装前景关闭好吗? 正如我不知道你是否有其他安装inder信任中心。 ?

+0

我正在运行SP2,Windows也是最新的。是的,如果我没有安装插件,Outlook会关闭。我也尝试从信任中心删除所有其他信息。这没有帮助。我在另一台电脑上尝试过它,它具有相同的效果。安装这个空的添加只会阻止Outlook关闭。 – 2009-10-27 19:42:11

1

看来Microsoft CRM Add In是问题所在。我之前禁用了它(实际上禁用了所有Outlook插件),但显然这还不够。事实上,从我的电脑中删除它解决了这个问题。

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

+0

是的,你必须删除它们,因为有些会按需加载。 Gald你已经排序 – 76mel 2009-10-27 22:51:26