.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

本文介绍了解决在.NET中使用Microsoft.Office.Interop.Word时遇到的异常问题的具体步骤。该异常通常由于注册表中Office DLL版本信息错误导致。文章提供了详细的注册表修改指南,帮助读者定位并修复问题。
1万+

被折叠的 条评论
为什么被折叠?



