◇VB.NET: ODPバージョン不一致エラー

2024年7月2日火曜日

Oracle VB.NET

t f B! P L

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

QooQ