Neutral Scent

App developments & Gadgets

64bit WindowsでOLEDBプロバイダエラー

.NETで作成したOLEDB接続を使用してAccessMDBファイルにアクセスするアプリをWindows XPの64bit Version(x64)で実行すると、

'Microsoft.Jet.OLEDB.4.0' プロバイダはローカルのコンピュータに登録されていません。

などとExceptionを出してきて実行エラーとなる場合があります。
私の確認した限りでは、素のWindows環境では問題なく実行できるプログラムが、Office2003やVS2005などさまざまなアプリをインストールした後は動かなくなるようです。おそらくAccess2003が上書きするOLEDBモジュールに問題があるのではないかと思います。
この問題の回避法ですが、VS2005の構成マネージャーでプラットフォームにx86を追加し、32bitバージョンとしてビルドすることで回避することができました。
せっかくの64bit環境で、.NETも対応していて、[Mixed Platforms]や[Any CPU]などの構成が選べるにもかかわらず、決め打ちで32bit版を作らないといけないとは、なんとも不条理な感じです。
参考情報:
VB-Tips - VS.Net 2005 Open Access database in 64 bit OS
http://www.vb-tips.com/default.aspx?ID=c8303e25-496d-4288-bc1d-58e5850daf5e
MSDN Forum - The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=125207&SiteID=1