c# - 无法加载 DLL 'db2app64.dll'

标签 c# .net entity-framework db2

我正在编写 .NET Framework 应用程序并尝试连接到服务器上的 DB2 数据库。尝试时,我收到错误“System.DllNotFoundException:'无法加载 DLL 'db2app64.dll':找不到指定的模块。(HRESULT 异常:0x8007007E)'”。显然,这是因为该文件不在目录中,但我很难找出该文件是什么以及如何获取它。这是我目前通过 NuGet 在项目上安装的内容:

EntityFramework, EntityFramework.IBM.DB2, IBM.Data.DB2, Newtonsoft.Json, System.IO

任何事情都会有帮助。谢谢。

最佳答案

我在使用 NuGet 时遇到了同样的问题:IBM.Data.DB.Provider version="11.5.4000.4861"targetFramework="net452",其中包含一个“clidriver”目录,其中包含所有必需的 DLL,包括 64 位“db2app64.dll”、32 位“db2app.dll”和其他使 DB2 数据访问成为可能的东西。

感谢Dependency Walker我发现我的 Windows 上缺少 MSVCR120.dll。

我下载了 Visual C++ Redistributable Packages for Visual Studio 2013 x86 和 x64 位版本(我在 64 位 Win10 和 64 位 Windows Server 2016 Standard 上运行)并按此顺序安装它,首先是 x86,然后是 x64(但您可能需要例如适用于您的 PC 的 ARM 版本)。

在我安装 C++ Redistributable 2013 后,它立即为我工作,无需重新启动。

请注意,“较新的”NuGets,例如IBM.Data.DB2.Core.3.1.0.400 在随附的“clidriver”目录中具有必要的 MSVCR120.dll,因此无需安装 C++ Redistributable。

关于c# - 无法加载 DLL 'db2app64.dll',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57327791/

相关文章:

c# - 将值传递给 Controller ​​方法时出错

用于 C++ 的 C# 包装器,但仅编译为静态库

c# - 在代码中使用 System.Data.OleDb 命名空间时找不到 OleDbConnection

c# - 使用泛型 C# 反序列化动态 XML

c# - URL WebRequest 404 错误 RESTful 服务中的百分比编码

c# - 夏普架构替代品

c# - 如何在 C# 中为 Windows 应用程序提供导览(工具提示导览)

c# - 在C#中获取一个国家的大陆

c# - 在 WCF 数据服务中公开实体的其他属性

asp.net-mvc - mvc4 和 EF 中的 Html.EditorFor 和多行文本框