2017-11-10 187 views
0

是否有可能,wo在C#.Net的控制台应用程序中手动引用了IBM提供的i客户端访问附带的cwbdc.dll?我想连接到AS400数据库而不安装i客户端访问,但只能通过使用 IBM.Data.DB2.iSeries和cwbdc.dll附带的提供程序。将IBM i客户端访问中的cwbdc.dll手动嵌入到控制台应用程序

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

{ “时发生意外的异常类型: System.BadImageFormatException,消息:ES wurde versucht,EINE Datei MIT einem falschen格式つ载货(Ausnahme冯HRESULT: 0x8007000B)。”}

回答

0

我遇到了IBM提供的cwbx.dll类似的问题。是的,这是可能的。

如果你想在没有安装客户端访问的情况下复制dll文件,你必须添加一个微软补丁,因为这个旧的DLL文件是“未管理的dll的”,不能直接加载。

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

然后你必须将所有320个 DLL文件谁与CWB ****开始从客户端访问dll的安装到你的文件夹中。与IBM.Data.DB2.iSeries.dll文件。 (它们都以不同的方式引用到对方中)。

对于我有这个工作,我可以使用iSeries连接,而无需安装客户端访问。但这是一个非常不稳定的方式。 请确保当您复制dll文件时,客户端访问未安装在目标机器上!

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

我已经用start =>检查解决了这个问题,如果你发现客户端访问安装,然后删除所有包含的dll文件并使用安装的。

但即使它工作,我不建议这样。

相关问题