此操作失败的原因是对 IID 为“{000208DA-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface

有些电脑报错,有些电脑正常。  

环境: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

原文地址:https://www.cnblogs.com/OwenWu/p/3835658.html