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

Posted anthony518

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型相关的知识,希望对你有一定的参考价值。

.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即可。

以上是关于无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型的主要内容,如果未能解决你的问题,请参考以下文章

关于office版本冲突, office com组件调用.

无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS

SQL Server Management Studio 无法将类型为“System.__ComObject

C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable

无法将类型“()”的值转换为预期的参数类型“字符串”

无法将 [Struct] 类型的值快速转换为 [string] 类型