c# Windows 应用程序无法在另一台计算机上运行
本文关键字:一台 计算机 运行 应用程序 Windows | 更新日期: 2023-09-27 17:56:08
我创建了一个新的 C# Windows 窗体应用程序。我已将 COM 引用"Microsoft Excel 15.0 对象库"添加到我的项目中。此项目用于将 Excel 数据导入数据集。我已经做到了。我在电脑里工作正常。如果我在另一台计算机上运行exe文件,它会显示如下错误。
错误:
无法强制转换类型的 COM 对象 Microsoft.Office.Interop.Excel.ApplicationClass' 到接口类型 'Microsoft.Office.Interop.Excel._Application'" 此操作失败 因为查询接口调用接口的 COM 组件的接口 IID"{{000208D5-0000-0000-C000-000000000046}"由于 以下错误:加载类型库/DLL 时出错(异常来自 结果:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).
COM 组件不是我的专长,我不经常使用它们。但我会告诉你我以前经历过的事情。请注意,我大约在 6 个月前经历过这种情况,在我的工作场所,情况远非理想。
为了使用一个/一些COM组件,您还需要在目标计算机上安装它的依赖项(在本例中为Excel/Office)。您是否检查过目标计算机上是否安装了Excel?
如果没有,则可以使用 OLEDB 连接来读取 Excel 文件。我不记得具体是如何完成的。
也许这可以以某种方式帮助使用 OLEDB 读取 Excel 文件:http://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB
在你的项目引用中,尝试在你的dll中设置复制本地=true
如果您使用的是 64 位开发环境,请尝试显式定义非 32 位版本的库的使用。要在 Visual Studio 中执行此操作,请在项目配置的构建部分中勾选然后取消选中"首选 32 位"框,这将在 .csproj 文件中添加<Prefer32Bit>false</Prefer32Bit>
。