0

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 フォルダーにコピーすることになっていますか?

後者の場合、それは明らかに起こっていません。洞察をありがとう。

4

1 に答える 1

0

解決策は、プロジェクトプロパティの[ビルド]タブで出力パスをbinに設定することでした。:-)

于 2012-05-18T18:04:28.733 に答える