2009-10-27 86 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