从.Net Core调用AS400 DB
我有一个.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;");
如果您使用.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需要更新以包含软件包驱动程序路径。
你在linux上设置变量名是什么?我在一个Ubuntu的码头集装箱顺便运行这个。 – Botonomous
将这项工作安装在我的电脑上进行本地主机测试吗? –
耶硬是你需要将DLL下发到生产env以及 – subkonstrukt
这是不正确的。 .NET Core软件包特别说明不需要其他驱动程序包。它是独立的,但您的应用程序必须将PATH变量设置为正确的值才能找到DLL。 – bhamby