64 ビットの開発マシンで VS 2010 で ASP.NET MVC 4/Web Api アプリケーションを開発しています。IIS をインストールしており、IIS でプロジェクトを実行しています。サード パーティのコンポーネントと連携する必要があるため、プロジェクトのビルド構成を x86 に変更する必要があります (現在、デバッグ ビルドを使用しています)。
IIS で、32 ビット プロセスを許可するアプリケーション プールを使用するようにアプリケーションを構成しました。しかし、自分のサイトを実行すると、行ったコードの変更が反映されていないことに気付きました。使用されているアセンブリは、\bin フォルダーにあるアセンブリであることが判明しました。構成を変更した後、コンパイラのアセンブリ出力は \bin\x86\debug フォルダーに移動します。IIS がそこを見ているようには見えませんでした。
構成を一時的に「任意の CPU」に戻し、プロジェクト ノードを右クリックして、 [クリーン] オプションを選択しました。これにより、\bin フォルダー内のすべての古いアセンブリが削除されました。次に、x86 構成に戻し、プロジェクトを適切に再構築し、プロジェクトを再度実行しようとしました。今ではアセンブリがまったく見つかりませんでした。次のようなエラーが表示されます。
Could not load file or assembly 'System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies
System.Web.Providers (および残りのすべてのアセンブリ) は \bin\x86\debug にあります。
- IIS はそこを見ることを知っているはずですか?
- Visual Studio は、アセンブリを 2 レベル上にある \bin フォルダーにコピーすることになっていますか?
後者の場合、それは明らかに起こっていません。洞察をありがとう。