Visual Studio 2010(C#)を使用する上での注意点
■プラットフォーム(x86, x64, AnyCPU)の設定について
visualstudioのプロパティ画面でPlatformTargetをx86に設定しても、「~~.csprojファイル」内では、AnyCPUのままの場合がある。この状態だと、実行時に「~~間違ったフォーマットのプログラムを読み込もうとしました。~~」の例外が発生する。これを解決するためには、「~~.csprojファイル」を直接編集する必要がある。
⇒
■プラットフォームの統一について
作成するアプリケーション、リンクするライブラリについて、プラットフォーム(x86, x64)は全て統一されている必要がある。
統一されていない場合、実行時に「間違ったフォーマットのプログラムを読み込もうとしました。 」旨の例外が発生する。
C#だけで、ライブラリを作る場合は、AnyCpuを使用しておけば、無難であるが、C++/CLIのライブラリ(dll)をリンクする場合、リンクするライブラリのプラットフォーム(x86, x64)を考慮して、統一する必要がある(SlimDXを使う場合とか)。
参考:
『間違ったフォーマットのプログラムを読み込もうとしました。 - のねの日記 - human brain programing』
http://d.hatena.ne.jp/none53/20100707/1278470575
『32 / 64bit 環境の取り扱い - SlimDX と C# で学ぶ DirectX』
http://mainori-se.sakura.ne.jp/slimdx/?page=32+%2F+64bit+%B4%C4%B6%AD%A4%CE%BC%E8%A4%EA%B0%B7%A4%A4
■.NET Frameworkの統一について
リンクするライブラリ、アプリケーションの.NET Frameworkのバージョンが違うと「混合モード アセンブリ~~」の例外が発生する。そのため、.NET Frameworkのバージョンを統一するようにした方が良い。
もしくは、以下の様にApp.configを編集すること。
参考:
『NKY-TECH. ソフトウェア開発部: .NET Framework 4.0で混合モードのアセンブリを読み込めない旨のエラー』
http://nky-tech-sdt.blogspot.jp/2010/02/net-framework-40.html
『オンラインマニュアル : 混合モード アセンブリは・・・(Visual Studio 2010)』