Office互操作不能在多台计算机上运行

时间:2014-03-04 13:49:25

标签: c# office-interop revit

我正在开发一个Autodesk Revit插件,它与Excel通信并对单元执行一些标准的读/写操作。我引用了Microsoft.Office.Interop.Excel(v12.0.0.0),因为某些用户可能安装了Office 2007而不是2010或更高版本。我使用Visual Studio 2013.这是代码的开头;

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):由于以下错误,检索具有CLSID(00024500-000-0000-C000-000000000046)的组件的COM类工厂失败: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))

1 个答案:

答案 0 :(得分:0)

我可能在这里找到了答案: Excel interop works on machine with Office 2007 but fails on machine with Office 2010

问题机器有Office,但它设置为点击运行(在互联网上运行)而不是基于MSI(从EXE运行)。这意味着Microsoft.Office.Interop.Excel无法使用某些注册表设置,DLL,组件等,因此它失败。

可以从Office Click-to-Run切换到基于MSI的Office。