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

问题描述 投票:1回答:1

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

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

{“发生意外异常。”类型:System.BadImageFormatException,消息:尝试加载格式不正确的文件(HRESULT异常:0x8007000B)。“}

c# dll db2
1个回答
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开头的DLL文件从客户端访问安装复制到包含IBM.Data.DB2.iSeries.dll文件的文件夹中。 (它们都以不同的方式相互引用)。

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

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

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

但即使它有效,我也不推荐这种方式。

© www.soinside.com 2019 - 2024. All rights reserved.