ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

VS2012の「32ビットの優先」ビルドオプション

OleDbでOracle接続を行ったところ、何故かVS2012で作成したプロジェクトではエラーになる。

色々調べた結果、
理由はビルドオプションでの「32ビットの優先」オプションがTrueだった事が分かった。

VSのバージョンによってビルドオプションの初期値が以下の様になる模様

VS2008まで
・Any CPU

VS2010
・x86

VS2012以降
・Any CPU(32ビットの優先)
  1. Any CPU:32bitOS上では32bitのCLR上で動作。64bitOS上では64bitで動作。
  2. x86:32bitのCLR上で動作
  3. x64:64bitのCLR上で動作。32bitOSでは実行できない。
  4. Any CPU(32ビットの優先):32bitOSでも64bitOSでも、32bitのCLR上で動作。.Net4.5を対象とする場合のみ指定できる。

関連URL
http://www.infoq.com/jp/news/2012/04/anycpu_vs11
https://msdn.microsoft.com/ja-jp/library/vstudio/zekwfyz4.aspx
http://sourcechord.hatenablog.com/entry/20130412/1365789867