.net中使用Microsoft.Office.Interop.Word时抛异常:
无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。
原因之一是:引用office的DLL版本在注册表中信息有误。
我出现以上情况解决方式如下(win7 ,0ffice2013):
打开注册表(开始——>命令:regedit),
1.在HKEY_CLASSES_ROOT \Interface[00020970-0000-0000-C000-000000000046]\TypeLib 中查看信息:key:{00020905-0000-0000-C000-000000000046} ,Verison:8.6
2.用key在HKEY_CLASSES_ROOT\ WOW6432Node \TypeLib\00020905-0000-0000-C000-000000000046查看信息:
可以看出有8.6和8.7,删除8.7即可。
参考地址:https://social.msdn.microsoft.com/Forums/vstudio/en-US/d34c4f78-46f3-478e-9c44-95ea8461e46f/unable-to-cast-com-object-of-office-interop-word?forum=vsto