2017-04-19 135 views
1

我有一个.Net Core WebAPI,并且安装了IBM.Data.DB2.Core软件包。 当我尝试使用连接字符串调用DB2Connection构造函数时,出现以下错误。从.Net Core调用AS400 DB

无法加载DLL'db2app64.dll':无法找到指定的模块。

这是应该包含在DB2.Core包中的东西吗?有没有更好的方式从.Net Core中调用AS400 DB?

我的代码如下所示:

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

回答

0

您需要安装IBM数据服务器驱动程序包至极你可以在那里

http://www-01.ibm.com/support/docview.wss?uid=swg24038920

它包括你缺少

的依赖
+0

将这项工作安装在我的电脑上进行本地主机测试吗? –

+0

耶硬是你需要将DLL下发到生产env以及 – subkonstrukt

+1

这是不正确的。 .NET Core软件包特别说明不需要其他驱动程序包。它是独立的,但您的应用程序必须将PATH变量设置为正确的值才能找到DLL。 – bhamby

3

如果您使用.NET Core软件包,则必须包含驱动程序的路径(包含在NuGet p ackage)在你的PATH变量中。

这里的FAQ on the NuGet package on Developer Works的相关部分:

问:我需要做任何额外的配置使用此 配置。

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. 

我发现把它设置最简单的方法是设置PATH变量在您的项目设置。查看this blog post关于你可以做到的一些不同的方法。

事实上,this other Developer Works page说:

有关下载和使用包

以下是使用包

  • 任何其他IBM DB驱动程序绝的先决条件不在机器中。

  • Path/LD_LIBRARY_PATH需要更新以包含软件包驱动程序路径。

+0

你在linux上设置变量名是什么?我在一个Ubuntu的码头集装箱顺便运行这个。 – Botonomous