Visual Studio 2022中Interop.Excel加载失败求助:COM对象转换错误
解决Office Interop Excel 类型转换与DLL加载错误
针对你遇到的System.InvalidCastException(错误码TYPE_E_CANTLOADLIBRARY)问题,以下是针对性解决步骤:
1. 修复Office安装
- 打开控制面板→程序→程序和功能,找到Office 365,右键选择「更改」,先尝试「快速修复」;若无效,再选择「联机修复」。这能修复损坏的Office类型库或COM组件注册信息。
2. 匹配Interop版本与平台位数
- 版本对齐:移除项目中现有的Microsoft.Office.Interop.Excel引用,重新添加COM引用列表里的「Microsoft Excel 16.0 Object Library」(对应Office 365版本),避免15.0版本与Office 16.0不兼容。
- 位数兼容:右键项目→属性→生成→平台目标,根据你的Office位数设置:
- 若Office为32位,选择
x86 - 若Office为64位,选择
x64或AnyCPU(需取消勾选「首选32位」)
- 若Office为32位,选择
3. 重新注册Excel COM组件
以管理员身份打开命令提示符,执行对应路径的注册命令:
- 64位Office:
regsvr32.exe "C:\Program Files\Microsoft Office\Root\Office16\EXCEL.EXE" - 32位Office:
regsvr32.exe "C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE"
4. 改用NuGet包管理Interop引用(推荐)
移除现有手动添加的Interop引用,在NuGet包管理器中搜索并安装Microsoft.Office.Interop.Excel最新稳定版,NuGet会自动适配你的Office环境,避免版本冲突问题。
5. 处理GAC中的版本冲突
你当前引用的是GAC中的15.0版本,可能和Office 16.0冲突:
- 右键项目中的Interop引用→属性,将「复制本地」设置为
True,让项目使用本地复制的DLL,而非GAC中的旧版本; - 若仍有问题,可尝试以管理员身份删除GAC中的15.0版本文件(路径:
C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c)。
内容的提问来源于stack exchange,提问作者Katrin Zahnweh
相关产品推荐
相关产品推荐

