2013-11-15 37 views
2

我有一個使用Add-in-Express框架(即不是.NET,沒有VSTO)在Delphi XE3/XE4中編寫的插件。它在所有32位版本的Outlook 以及64位版本的Outlook 2013中運行良好。但是,在Outlook 2010的64位版本下,它無法加載:COM-Addin管理器告訴我「未加載。加載COM加載項期間發生運行時錯誤。」 (即註冊表中的LoadBehavior-value設置爲2)。COM-Addin不會在Outlook 2010x64(LoadBehavior設置爲2)中加載。如何調試「運行時錯誤」?

有什麼方法可以找出那個「運行時錯誤」可能是什麼?

我已經把OutputDebugString放到了我的代碼以及VCL和ADX代碼中,而且在Outlook再次卸載DLL之前,這些代碼並沒有出現任何一個。

當在調試器(通過PAServer)上運行我設置任何斷點(例如,在DPR-文件的beginClasses單元的initialization)甚至沒有永遠得到啓用。對我來說,DLL甚至永遠不會加載到調試器中(這對Outlook 2013x64可以正常工作)。

我也已經寫了一個虛擬主機EXE,它將實例化我的COM服務器,並在IDTExtensibility2-界面上調用適當的方法來模擬實際的Outlook主機,但在這種情況下也不會發生錯誤。

看着Process Monitor的東西,插件DLL會短暫加載,但會立即再次卸載,然後重置LoadBehavior值。

我檢查了應用程序日誌並在Outlook本身中啓用了日誌記錄,但至今沒有提示所謂「運行時錯誤」的本質。

所有最新的更新和服務包都適用於所有的Delphi,Add-in-Express,Outlook,Windows。 Windows版本是7 Pro。沒有安裝其他插件。

還有什麼想法?

+1

插件快速支持是優秀 –

+0

是的,我知道,但看到流程執行永遠不會達到在ADX代碼失敗之前,我並不認爲ADX可能是問題的一部分......我只是爲了完整性而將其包含在內,並澄清了這不是VSTO插件。 –

+0

在你的加載項中加載內容,直到它加載。儘管如此,我仍然會嘗試ADX支持。 –

回答

0

將環境變量VSTO_SUPPRESSDISPLAYALERTS值0添加到導致問題的PC。 然後你可以重新加載插件從Outlook >>選項>>地址>>管理。 因此,前景將嘗試重新加載這個插件,你會得到一個彈出窗口的概率細節...

+0

你確實注意到我明確提到這是**不是**一個VSTO插件嗎?也就是說,我已經嘗試了環境變量但是沒有影響... –

相關問題