Dot-Net

如何對無法載入的 VSTO 外掛進行故障排除?

  • January 12, 2011

我的 VSTO Outlook 載入項突然停止在一台客戶電腦上工作(它無法載入,沒有錯誤消息),我一直在進行故障排除。機器是 Windows 7 x86,Outlook 2007。載入項是用 Visual Studio 2008 編寫的,並使用帶有 2003 PIA 的 VSTO 2005(因為我們還需要支持 Outlook 2003)。它在其他機器上執行良好。

這是我試圖獲得有用的故障排除輸出的內容:

沒有。載入項不會在沒有說明原因的情況下載入。我還檢查了“通常的嫌疑人”(CAS 策略、安裝的 PIA、系統資料庫中的 LoadBehavior、重新安裝 VSTO 和載入項)。

其他一些觀察:

  • LoadBehavior在系統資料庫中停留在3.
  • 該載入項在 Outlook 中顯示為“已禁用”。在“COM 載入項”中選中它的複選框什麼都不做(沒有錯誤,第二次輸入表單時復選框再次被清除)。
  • 它在其他客戶機器上執行良好,在這台機器上執行良好。(不,客戶無法告訴我他的機器發生了什麼變化。)
  • Trace.WriteLine在程式碼的最頂部(ThisAddIn_Startup處理程序中的第一行)有一條消息,但沒有到達(我檢查了DebugView)。因此,不載入的原因不是我的載入項中的異常,而是 VSTO 載入載入項失敗或 Outlook 載入 VSTO 失敗。

而不是更多的隨機調試(“試試這個……”,“試試那個……”),我真的很想強制 Outlook 和/或 VSTO 告訴我出了什麼問題,即給我一個有用的錯誤消息嘗試啟用載入項時什麼*都不做。*有任何想法嗎?

您是否嘗試再次啟用載入項?它在禁用隊列中後不會執行。從禁用的載入項螢幕重新啟用它後,您可以選中 COM-AddIn 螢幕中的框以載入它,然後應該提示您更多詳細資訊,因為您設置了VSTO_SUPPRESSDISPLAYALERTS關於第一次可能發生的事情的變數地方。

下面是關於 RobertG5 解決方案的更多細節(評論太長了):

問題是該載入項已被Outlook硬禁用。據我所知,這與“通常的”不載入場景不同。實現這一點的關鍵是要注意外掛沒有出現在Inactive Application Add-Ins下,而是在Disabled Application Add-Ins下。這會有所不同:在後一種情況下,只需進入 COM-AddIn 螢幕並勾選複選框就不會執行任何操作。(我想一個很好的消息框“您無法載入此載入項,因為它已被硬禁用”會問太多……嘆息。)

那麼,如何重新啟用硬禁用的載入項?

  1. Manage框中,將COM Add-ins更改為Disabled Add-ins,然後點擊 Go。
  2. 選擇載入項並點擊啟用。點擊關閉

好的,現在可以再次載入載入項:

  1. Manage框中,將Disabled Add-ins更改為COM Add-ins,然後點擊 Go。
  2. 選中已禁用載入項旁邊的複選框。點擊確定

參考:http: //msdn.microsoft.com/en-us/library/ms268871.aspx

引用自:https://stackoverflow.com/questions/4668777