/ .NET, Database

Oracle ODP.NETの話。
ODP.NETは11gからWindows7に対応しています。
Win7対応アプリの開発なので、11gクライアントをセットアップした開発環境でビルドしているわけですが、ビルドしたモジュールをそのままWinXP+10gクライアントな環境で動作させるとデータベースにうまく接続できずにエラーとなります。
参照しているODP.NETのアセンブリバージョンが合っていないために発生する事象ですが、これを回避すべく「アセンブリバージョンのリダイレクト」という仕組みを試してみました。

方法としては、次のようなアプリケーション構成ファイル(app.config)を用意するだけ。
ハイライト部がバージョンリダイレクトの指定になります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
				<bindingRedirect oldVersion="2.112.1.0" newVersion="10.2.0.100" />
			</dependentAssembly>
		</assemblyBinding>
	</runtime>
</configuration>

本来は旧バージョンを下位互換のある新バージョンに置き換えて利用するための仕組みですが、バージョン依存した特別なことをやっていなければ、逆パターンでも普通に動いてくれているようです。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です