ソリューションには、プロジェクトAとBの2つのプロジェクトがあります。プロジェクトAにdll参照を追加しました。プロジェクトAをビルドすると、dllがプロジェクトAの出力ディレクトリにコピーされます。ここで、プロジェクトをプロジェクトBからプロジェクトAに参照すると、dllはプロジェクトBの出力フォルダーに新しくコピーされます。何故ですか?
これはMicrosoftの設計によるものですか?
これはMicrosoftの設計によるものですか?
はい。
「出力にコピー」オプションを設定することにより、アセンブリをコピーするかどうかを選択できます。
私のプロジェクトでは、ランタイム(コンソール、アプリ、単体テスト)を生成するものが、参照をローカルにコピーしています。これがないとアプリが実行されないため、これは重要です。
他のプロジェクト(コンポーネントなど)は中央のバイナリフォルダーに格納されており、そこから取得されたため、参照をコピーしていません。これにより、ビルド時間が大幅に節約されます。
[ローカルのコピー]プロパティをTrueまたはFalseに設定するにはソリューションエクスプローラーで、[すべてのファイルを表示]ボタンをクリックして[参照]ノードを表示します。プロジェクトの参照ノードを開きます。[参照]リストで参照を右クリックし、[プロパティ]をクリックします。その参照に関連付けられているプロパティは、[プロパティ]ウィンドウのリストに表示されます。[プロパティ]ウィンドウで、[ローカルのコピー]プロパティをTrueまたはFalseに変更します。
参照:https ://msdn.microsoft.com/en-us/library/t1zz5y8c(v = vs.90).aspx