无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型Microsoft.Office.Interop.Word

.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

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值