.net ソリューションの Git リポジトリを同じマシン上の別のフォルダーにプルしようとしています (動作を確認するためだけに)。
sを作成する私が使用するプロジェクトではIfxConnection
、新しい を作成しようとすると、IBM Informix ドライバーによってスローされる がIfxConnection
取得されます。DllNotFoundException
受信したメッセージは「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 ドライバーはバックグラウンドで多くの DB2 接続コードを使用しているようで、デザイナーが生成したデータセットを使用する他のプロジェクトでは、DB2 コネクタ タイプを使用して Informix データベースにしか接続できません。 . したがって、これが DB2 関連である理由はすぐには明らかではありませんが、DB2 タグです。