我正在尝试将 .net 解决方案的 Git 存储库拉到同一台计算机上的另一个文件夹(只是为了确保它有效)。
在我使用的项目中创建IfxConnection
s,当我尝试创建一个新的IfxConnection
我得到一个DllNotFoundException
,这是由 IBM Informix 驱动程序抛出的。
我收到的消息是“无法加载 DLL 'db2locale.dll':找不到指定的模块。(HRESULT 异常:0x8007007E)”,堆栈跟踪(读回到构造函数调用)是:
at IBM.Data.Informix.UnsafeNativeMethods.IfxInteropAPP.sqloGetNormalizedLangFromLangId(Int16 lcid)
at IBM.Data.Informix.UnsafeNativeMethods.IfxLocale.sqloGetNormalizedLangFromLangId(Int16 lcid)
at IBM.Data.Informix.IfxResource.GetMsgPath(CultureInfo cultureInfo, String szResFileName)
at IBM.Data.Informix.IfxResource..ctor(CultureInfo cultureInfo, String szResFileName, String szMsgPath)
at IBM.Data.Informix.IfxResource..ctor(CultureInfo cultureInfo, String szResFileName)
at IBM.Data.Informix.IfxResources.GetResource(CultureInfo cultureInfo)
at IBM.Data.Informix.IfxResources.GetString(CultureInfo cultureInfo, String stringID)
at IBM.Data.Informix.Res.GetString(CultureInfo culture, String name)
at IBM.Data.Informix.ODC.InvalidArgument()
at IBM.Data.Informix.IfxConnPool.ReplaceConnectionStringParms(IfxConnection connection, String szValue, IfxConnSettings& pSettings, IfxConnSettingsInternal& pSettingsInternal, Boolean bAttach)
at IBM.Data.Informix.IfxConnection.set_ConnectionString(String value)
at IBM.Data.Informix.IfxConnection..ctor(String connectionString)
问题是,我的代码/项目没有直接引用这个 dll。我的代码参考IBM.Data.Informix
在本地机器路径上C:\Program Files\IBM\IBM DATA SERVER DRIVER\bin\netf40_32\IBM.Data.Informix.dll
,就像在我的所有其他项目以及克隆该存储库的存储库中一样。从存储库打开原始项目不会产生任何错误。
任何人都可以让我深入了解为什么会发生此错误以及我可以采取哪些措施来解决它?
顺便说一句,IBM Informix 驱动程序似乎使用lot在后台的 DB2 连接代码中,在使用设计器生成的数据集的其他项目中,我只能使用 DB2 连接器类型连接到我的 Informix 数据库。因此就有了 DB2 标签,尽管这与 DB2 相关的原因并不是很明显。