Visual Studio で 64ビット版のASP.NET を実行すると「ファイルまたはアセンブリ、またはその依存関係の1つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。」エラーが発生する - Visual Studio

Visual Studio で 64ビット版のASP.NET を実行すると「ファイルまたはアセンブリ、またはその依存関係の1つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。」エラーが発生することがあります。この記事では対策について紹介します。

現象

構成マネージャーで64ビット版のASP.NETプロジェクトを作成します。(デフォルトではany cpuの設定になっています。)


x64の構成でビルドしてASP.NETプロジェクトを実行します。


下図の「ファイルまたはアセンブリ、またはその依存関係の1つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。」エラーが発生しASP.NETプロジェクトを実行できません。

原因

Visual Studioでのデバッグ時に利用するIIS Expressがデフォルトの状態では、32ビット版であり、64ビットのASP.NETバイナリを実行できないため。

対策

以下の対策があります。

対策1 : Visual Studioの設定を変更

Visual Studioの[ツール]メニューの[オプション]を選択します。


下図のオプションウィンドウが表示されます。


左側のツリービューで、[プロジェクトおよびソリューション]カテゴリ内の[Webプロジェクト]を選択します。下図の画面が表示されます。


右側の[Webサイトおよびプロジェクト用 IIS Express の 64ビットバージョンを使用する]にチェックをつけます。設定が完了したら[OK]ボタンをクリックし、オプションウィンドウを閉じます。


ASP.NETプロジェクトを実行すると、64ビット版のIIS Expressが利用されるため、64ビットのASP.NETプロジェクトが正しく実行されます。

対策2 : レジストリの設定を変更

上記の設定をレジストリエディタでレジストリを直接編集できます。

レジストリエディタを起動します。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\WebProjects
キーを開きます。
キー内の"Use64BitIISExpress"の値を確認します。32ビット版のIIS Expressが利用される場合は、値が"0"になっています。


64ビット版のIIS Expressを利用する場合は、Use64BitIISExpress"の値を"1"に変更します。


ASP.NETプロジェクトを実行し、エラーが表示されないことを確認します。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2019-12-10
作成日: 2015-10-29
iPentec all rights reserverd.