Db2 从.Net核心调用AS400 DB

Db2 从.Net核心调用AS400 DB,db2,.net-core,Db2,.net Core,我有一个.Net核心WebAPI,并安装了IBM.Data.DB2.Core包。 当我试图用连接字符串调用DB2Connection构造函数时,我得到了以下错误 无法加载DLL“db2app64.DLL”:找不到指定的模块 这是否应该包含在DB2.Core包中?有没有更好的方法从.Net内核调用AS400 DB 我的代码如下所示: DB2Connection conn = new DB2Connection("Server=as400.example.com;Database=CLIENTS01

我有一个.Net核心WebAPI,并安装了IBM.Data.DB2.Core包。 当我试图用连接字符串调用DB2Connection构造函数时,我得到了以下错误

无法加载DLL“db2app64.DLL”:找不到指定的模块

这是否应该包含在DB2.Core包中?有没有更好的方法从.Net内核调用AS400 DB

我的代码如下所示:

DB2Connection conn = new DB2Connection("Server=as400.example.com;Database=CLIENTS01;UID=user1;PWD=password1;");

您需要安装IBM数据服务器驱动程序包,您可以在那里找到它


它包括您缺少的依赖项

如果您使用的是.NET Core包,则必须在path变量中包含驱动程序的路径(包括在NuGet包中)

以下是报告的相关部分:

问:我需要做任何额外的配置来使用这个吗 配置

 Yes,  On Windows :
   if C:\Users\<USERNAME>\ is the NuGet package folder then
   add to the path:  C:\Users\<USERNAME>\.nuget\packages\IBM.Data.DB2.Core\1.0.0.100\build\clidriver\bin

 and On Linux:
    append $HOME/.nuget/packages/IBM.Data.DB2.Core-lnx/1.0.0.100/build/clidriver/lib
    to the LD_LIBRARY_PATH.
是,在Windows上:
如果C:\Users\\s是NuGet包文件夹,则
添加到路径:C:\Users\\.nuget\packages\IBM.Data.DB2.Core\1.0.0.100\build\clidriver\bin
在Linux上:
追加$HOME/.nuget/packages/IBM.Data.DB2.Core-lnx/1.0.0.100/build/clidriver/lib
到LD_LIBRARY_路径。
我发现最简单的设置方法是在项目设置中设置PATH变量。看看你可以用哪些不同的方法来做到这一点

事实上,他说:

下载和使用软件包的说明

以下是使用该软件包的先决条件

  • 机器中不应存在任何其他IBM DB驱动程序。

  • 需要更新Path/LD_LIBRARY_Path以包含包驱动程序路径


安装在我的电脑上进行本地主机测试可以吗?是的,稍后您还需要将dll发送到生产环境。这是不正确的。NET核心包特别指出不需要其他驱动程序包。它是自包含的,但您的应用程序必须将PATH变量设置为正确的值,才能找到DLL。@bhamby是正确的。Nuget包中包含了驱动程序。如果将Nuget包的内容与驱动程序安装的内容进行比较,它们几乎是相同的。他的回答应该能让你工作。与Nuget软件包一起安装驱动程序的缺点是安装了2个驱动程序,可能是不同的版本等。在linux上,您将变量名设置为什么?我在ubuntu docker容器中运行这个。