このエラーが発生しています。
コンパイル エラーの説明: この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソース コードを適切に変更してください。
コンパイラ エラー メッセージ: CS1704: 同じ単純名 'MyMVCAssembly、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null のアセンブリが既にインポートされています。参照の 1 つを削除するか、署名して、side-by-side を有効にしてください。
私のソリューションには 2 つの ASP.Net MVC プロジェクトがあり、メイン コンテンツとエリアを分割しています。メイン プロジェクトには、2 番目のプロジェクトへの参照がありません。代わりに、フォルダー内のすべての MVC DLL を取得し、それを IOC コンテナーに格納します。これにより、すべてのコントローラーが登録されます。
2 番目の ASP.Net MVC プロジェクトの出力をメイン プロジェクトの bin フォルダーに設定すると、エラーが発生します。(私は Areas ソリューションのすべてのビューを常にコピーするように設定しました。)
出力を設定する代わりに、DLL をメイン ビンにコピーするビルド後のアクションも試しましたが、結果は同じです。
私は何をすべきか?
さらに、次の設定があります。
- VS Dev サーバーの代わりにローカル IIS サーバーを使用するように設定されています。
- [出力] ウィンドウで、ローカル Web サーバーが GAC および一時 ASP.Net ファイル フォルダーからすべての DLL をロードしていることがわかります。問題は、Solutions フォルダーから DLL ファイルをロードしようとしているということです。
ソリューションからもその唯一の DLL を取得しようとする理由はありますか? 他のプロジェクトではその動作はありません。
アップデート:
ここに奇妙な振る舞いがあります:
[1] 問題のあるアセンブリのすべてのコピーを消去します。
[2] そのアセンブリをメインの MVC プロジェクトの bin フォルダーにコピーするビルド後のアクションを削除しました。
[3] メイン プロジェクトを実行します。問題なく動作しますが、もちろん、不足しているアセンブリは読み込まれません。
[4] そのアセンブリを mian MVC プロジェクトの bin フォルダーに手動でコピーします。
[5] ソリューションを実行します。再びエラーが発生しています!
このまったく同じアセンブリを2つの異なる場所からロードしようとしている理由を誰かが説明できますか?
これは問題の手がかりになるかもしれません。アセンブリをメイン MVC プロジェクトの bin フォルダーにコピーしているため、Temporary ASP.NET フォルダーにもコピーされています。同時に、プロジェクトはソリューション内の他のプロジェクトから参照されていないため、同じアセンブリを IIS にコピーしています。どうすればこれを防ぐことができますか? アセンブリをメインの MVC ビンにコピーする手順を除外すると、アセンブリは IIS にまったく読み込まれません。なぜそのように振る舞うのですか?