2013-07-24 20 views
0

我有空:AddIn.Object返回在特定機器上

  1. 一個VSTO Excel插件;
  2. 超控對象RequestComAddInAutomationService()它返回被註釋爲
    [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] 一個類的實例和實現該註釋
    [ComVisible(true)]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
  3. 從插件過程我能夠訪問Globals.ThisAddIn.Application.COMAddIns.Item("MyAddinName").Object的接口得到上面提到的類;
  4. 在C#代碼中訪問Marshal.GetActiveObject("Excel.Application").COMAddIns.Item("MyAddinName").Object從VBA宏中調用(Excel DNA)我通常可以獲得上述類。但是在某些機器上,這個引用是空的。

任何人都知道可能是什麼原因?

+0

機器之間有什麼區別?具有空引用的機器有什麼不同? – PowerUser

回答

0

確保COMAddins在機器中的開發人員=> Com加載項按鈕中可用。

0

在您的Excel-DNA插件,你應該總是一起ExcelDnaUtil.Application調用合適的應用對象。否則,如GetActiveObject(...)這樣的錯誤代碼,您可能會在該機器上運行另一個Excel實例。