Oracle+.NETのプログラムでODP.NETを使用している場合、バージョン不一致によるエラーが良く発生する。
この場合、実行するEXE(もしくはDLL)用の.configファイルにバインディングリダイレクト(BindingRedirect)の設定を行えばうまくいく場合がある。
必要な情報は
・PublicKeyToken(これは ODPの場合 "89b483f429c47342" 固定なのかな?)
・oldVersion(初めに要求されていたアセンブリバージョン)
・newVersion(初めに要求されたバージョンの代わりに使用するアセンブリバージョン)
※ https://learn.microsoft.com/ja-jp/dotnet/framework/configure-apps/file-schema/runtime/bindingredirect-element
例えば 4.121.2.0 が見つからない!とエラーが出て、
現在の環境には 4.122.1.0 が入っている場合、.configファイルの <configuration> → <runtime> に以下の記載を追加
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral"/>
<bindingRedirect oldVersion="4.121.2.0" newVersion="4.122.1.0" />
<publisherPolicy apply="no"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
公開:2024.07.02 12:16
0 件のコメント:
コメントを投稿