プロジェクトA参照プロジェクトB、およびProject Bは外部DDLを参照します(NuGetを使用して復元)。 DLLはProject Aのbinフォルダー(- プロジェクトBのDLL):
私の場合、Project Aを実行すると、次の例外がスローされます:
ファイルまたはアセンブリ 'PostSharp、バージョン= 3.2.18.0、Culture = neutral、PublicKeyToken = b13fd38b8f9c99d7'またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。
DLLはProject Aのビンにコピーされていません。他のすべての外部Project Bからの参照は正常にコピーされているため、混乱を招きます。
Copy Local
は、関連するすべての参照に対してtrueに設定されます。例:
どうすればいいですか?
注:Visual Studio 2013を使用します。
私が見つけたオプションは次のとおりでした:
上記のソリューションはどれも好きではありません。私の意見では、これらはハッキングであり、長期的にはより保守不可能なソリューションになります。
共通の出力ディレクトリを使用して問題を修正しました。これは多くの人に推奨されるソリューションのようです。また、ビルド時間が大幅に短縮されました。 このStackoverflowポスト を参照してください。
この問題に遭遇したのは、プロジェクトの名前を変更したがアセンブリ名は変更しなかったためです。ソリューション内の別のプロジェクトのアセンブリ名と同じでした。
プロジェクトBにダミー(未使用)コードを追加し、DLL required。
したがって、コンパイラはDLL=をプロジェクトAの出力にコピーする必要があると推測します。