私のソリューションに2つのプロジェクトAとBが含まれているとしましょう。プロジェクトAはプロジェクトBを参照しています。プロジェクトBは、サードパーティのアセンブリCを参照しています。Cはいくつかのネイティブdllに依存しています。Cが機能するには、 Cアセンブリと同じディレクトリに配置する必要があります。
私が達成したいことは次のとおりです。プロジェクトAをビルドするとき、そのビルドディレクトリには次のファイルが含まれている必要があります。
A.dll
B.dll
C.dll
Native_Lib_For_C_1.dll
...
Native_Lib_For_C_N.dll
どのようなオプションがありますか?
プロジェクトBのビルド後のアクションを記述して、ネイティブdllを出力ディレクトリにコピーしようとしました。しかし、Aをビルドすると、ネイティブdllはAの出力ディレクトリではなく、 Bの出力ディレクトリに移動します。
確かに、プロジェクトAに対して同じビルド後のアクションを記述できますが、実際にはソリューションにA、B、Cなどのプロジェクトが多数あるため、DRYの原則に違反しています。
もう1つのオプションは、すべてのプロジェクトに同じ出力ディレクトリを設定することですが、一部のプロジェクトを独自のディレクトリに組み込むことをお勧めするため、これは理想的なソリューションではありません。