有些电脑报错,有些电脑正常。
环境:VS2010 WinForm程序, Office2007
C#操作Excel时报错。错误:
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel.Workbook”。
此操作失败的原因是对 IID 为“{000208DA-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface
因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。
{45541000-5750-5300-4B49-4E47534F4655} ==> {00020813-0000-0000-C000-000000000046}
解决办法: 我对比了一下【正常运行的电脑】和【报错的电脑】的注册表。修改注册表后,可以成功运行了。
run --> regedit 打开注册表 ctrl+f 查找【{000208DA-0000-0000-C000-000000000046}】-》TypeLib 把值改成
默认:{00020813-0000-0000-C000-000000000046}
Version:1.6