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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将IBM i Client Access中的cwbdc.dll手动嵌入到控制台应用程序中相关的知识,希望对你有一定的参考价值。

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

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

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

答案

我和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文件并使用已安装的文件。

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

以上是关于将IBM i Client Access中的cwbdc.dll手动嵌入到控制台应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

Hyper-V 2016 系列教程56 SCVMM 2016 Client的安装

如何将数据从 ms-access 或 excel 导出到 IBM DB2 I-Series 数据库?

IBM Watson Conversation API:“预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权”

将文件列表中的文件存储在 IBM i 上的 tarball 中 - shell

IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?

Ms Access 链接表到 IBM iSeries 缺少列