我对在 Visual Studio 2022 中使用 Interop.Excel 感到绝望——库无法加载

问题描述 投票:0回答:3

我已经尝试了一切——我发誓…… 但是现在我的想法已经用完了,需要一些专家的帮助。

我过去一直在使用 Microsoft.Office.Interop.Excel。 但是现在,好像有什么变了。

无论我在尝试什么,我都无法摆脱那个 dll 错误:


System.InvalidCastException: '无法转换 'Microsoft.Office.Interop.Excel.ApplicationClass' 类型的 COM 对象 接口类型“Microsoft.Office.Interop.Excel._Application”。 此操作失败,因为对 COM 组件的 QueryInterface 调用 由于以下错误,与 IID“{000208D5-0000-0000-C000-000000000046}”的接口失败: 加载类型库/DLL 时出错。 (HRESULT 的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。'


我的环境: 我的VS版本: Microsoft Visual Studio Community 2022(64 位)- 当前版本 17.4.4

Interop.Excel版本及路径: Microsoft Excel 16.0 对象库 C:\WINDOWS ssembly\GAC_MSIL\Microsoft.Office.Interop.Excel .0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

办公室: 我正在使用 Office 365。

1。从零开始 为了排除其他一切,我建立了一个全新的项目,除了 using-directive 之外什么都没有。而且......我得到了同样的错误(见截图:https://i.stack.imgur.com/ZZHFN.png)。

2。以不同方式添加参考 我已经添加了 COM 列表中的引用,但也尝试直接使用路径 - 没有区别。

检查文件位置和版本 该文件正是它应该在的地方。 我也看不到任何更新版本的 DLL 可供下载。

更新到最新的 .NET 版本 什么都没有改变。

你知道我该如何解决这个错误吗? (请大方回答 - 我有几年的编程休息时间,现在又要重新开始了......)

祝你有美好的一天! 卡特琳

excel office-interop
3个回答
0
投票

我没有现成的解决方案,但 VS 2022 中与 32/64 位问题的 COM 互操作相关的任何问题。以下是一些想法:

你用的是32位office吗?检查:文件 => 帐户 => 关于 Excel,然后查看顶部以粗体显示的内容。 您是为 AnyCpu 构建,还是针对特定架构 (x86/x64)? 您还可以检查注册表以查看您的程序集是否实际注册了正确的“位数”,即匹配 Excel 的那个。 如果您正在构建 AnyCpu,VS2022 默认为 64 位,而不是早期(32 位)版本的 VS。

/埃纳尔


0
投票

与此同时,我切换到 NuGet 包“ClosedXML”,效果很好。这也适用于有同样问题的其他人。

提示:安装前请查看ClosedXml网站上的提示。安装无法正常工作(FEB-23),但有一个简单的解决方案。


0
投票

安装 nugget 包 'Microsoft.Office.Interop.Excel' 并将 using 放在最上面,没有错误。

© www.soinside.com 2019 - 2024. All rights reserved.