从IBM i Client Access手动将cwbdc.dll嵌入到控制台应用程序中

时间:2017-11-10 19:59:37

标签: c# dll db2

是否可以在C#.Net的控制台应用程序中手动引用IBM的i Client Access附带的cwbdc.dll?我想连接到AS400数据库而不安装i Client Access,但只能使用 IBM.Data.DB2.iSeries 以及cwbdc.dll附带的提供程序。

当我直接将cwbdc.dll复制到bin目录时,我得到以下异常。

  

{“发生了意外的异常。输入:   System.BadImageFormatException,消息:Es wurde versucht,eine Datei   mit einem falschen格式zu laden。 (Ausnahme von HRESULT:   0x8007000B)。“}

1 个答案:

答案 0 :(得分:1)

我遇到过与IBM的cwbx.dll类似的问题。是的,这是可能的。

如果要在没有安装客户端访问的情况下复制dll文件,则必须添加Microsoft补丁,因为这个旧的DLL文件是“umanaged dll”,不能直接加载。

Microsoft Visual C ++ 2005 Service Pack 1可再发行组件包ATL安全更新:https://www.microsoft.com/en-us/download/details.aspx?id=14431

然后,您必须将所有以cwb ****。dll开头的 320 DLL文件从客户端访问安装复制到包含IBM.Data.DB2.iSeries.dll文件的文件夹中。 (它们都以不同的方式相互引用)。

对我来说这有用,我可以在不安装Client Access的情况下使用iSeries Connection。但这是一种非常不稳定的方式。 确保在复制dll文件时,目标计算机上未安装Client Access!

如果已安装Client Access,并且您包含了dll文件,则应用程序将崩溃。如果复制的dll中的客户端访问版本与安装的版本不同,则应用程序也会崩溃。

我已通过检查start =>修复此问题。如果找到客户端访问安装,则删除所有包含的dll文件并使用已安装的文件。

但即使它有效,我也不建议这样做。