0

Visual Studio は、次のエラー メッセージでソリューション "S1" をビルドできません。

エラー 8: 参照されているアセンブリ "D:\S0\foo\bin\Debug\foo.dll" が見つかりませんでした。このアセンブリが別のプロジェクトで作成されている場合は、このプロジェクトをビルドする前にそのプロジェクトをビルドしてください。

参照されている foo プロジェクトは、実際には元は別のソリューション (エラー メッセージに表示されているように S0 と呼ばれる) の一部であり、「既存のプロジェクトを追加」によって含まれています。

ただし、Foo は S0 で正常にビルドされ、そのビン出力が存在します。S0 と S1 は両方とも x86 専用にビルドされるため、正しいパスは "S0\foo\bin \x86 \Debug\foo.dll" である必要があり、Visual Studio が正しい場所でバイナリ ファイルを検索しないようです。

Foo は、S1 に含まれていない S0 からの他のプロジェクトへの参照が原因である可能性が高いため、S1 に欠落した参照を示しています。ただし、必要なバイナリ ファイルが既に存在するため、これは問題にはなりません。

ファイルを 'bin\x86\Debug' から 'bin\Debug' に手動でコピーしましたが、参照の欠落に関する警告は削除されませんでしたが、これにより実際に VS ビルド S1 が正常に動作したため、Visual Studio は実際に「異常な」' bin\x86\debug' パス。

この問題を解決するにはどうすればよいですか?

4

3 に答える 3

1

ビルドの出力場所はカスタマイズ可能です。x86プロジェクトに他のプラットフォーム構成が存在する場合、VSの標準的な動作はフォルダーを作成することだと思います。

これは Visual Studio のバグではありません。(プロジェクトはソリューションにありますが) 間違ったパスで作成されたバイナリ参照があるようです。

于 2012-08-30T18:29:57.283 に答える
0

現在、回避策を使用しています。S0 の出力パスを手動で「通常の」(bin\Debug) に変更すると、x86 bin ファイルが VS が探している場所に配置され、その後 S1 をビルドできるようになります。ただし、これはベストプラクティスから逸脱しているように見えるため、これを長期的な解決策とは考えていません.

私の見解では、S0 と S1 は両方とも x86 専用にビルドされるため、x86 サブフォルダー内の bin ファイルを検索できないことは、Visual Studio の明確なバグです。

于 2012-08-29T13:36:05.380 に答える