我正在開發一個Autodesk Revit插件,它與Excel通信並對單元執行一些標準的讀/寫操作。我引用了Microsoft.Office.Interop.Excel(v12.0.0.0),因爲有些用戶可能安裝了Office 2007,而不是2010或更高版本。我使用Visual Studio 2013.以下是代碼的開頭部分;辦公室interop不能在多臺計算機上工作
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
然而,在某些計算機這將返回如下因素的錯誤:
的Revit遇到一個System.Runtime.InteropServices.COMException(0x80040154的):檢索COM類工廠CLSID組件(00024500-000- 0000-C000-000000000046)由於以下錯誤而失敗:80040154類未註冊(異常來自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。
它可以在多臺64位/ 32位計算機上安裝Office 2007/2010/2013。但它也不適用於具有相同規格的其他計算機。我怎樣才能找出什麼是錯的?
編輯:錯誤返回在這個特定的行:xlApp = new Excel.Application();
有人建議註冊dll,但這不適用於Microsoft.Office.Interop; HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
您在項目中引用了哪個版本的PIA? –
這就是v12.0.0.0,Embed Interop Types是False,Copy Local是True。 – user3086984
您是否嘗試過針對Office 2007的PIA進行編譯? –