私が現在取り組んでいるプロジェクトは、複数のチームによって開発されており、各チームはプロジェクトのさまざまな部分を担当しています。彼らは皆、独自のニーズに固有の構成設定を使用して、独自の C# プロジェクトとソリューションをセットアップしています。ただし、ここでは、すべてのプロジェクトを結合して同じ出力ディレクトリにビルドする別のグローバル ソリューションを作成する必要があります。
私が遭遇した問題は、すべてのプロジェクトを同じ出力ディレクトリにビルドする方法が 1 つしか見つからなかったことです。それらすべての構成を変更する必要があります。それは私たちが避けたいことです。これらすべてのプロジェクトが、この「グローバル」ソリューションについての知識を持たないようにしたいと考えています。各チームは、独自のサブソリューションだけで作業する可能性を保持する必要があります。
考えられる回避策の 1 つは、この「グローバル」ソリューションのためだけにすべてのプロジェクトに特別な構成を作成することですが、この構成設定をその特定のチームが使用する通常の構成設定と常に同期する必要があるため、追加の問題が発生する可能性があります。私たちが最後にやりたいことは、開発者が構成をチェックインしたが、グローバル構成でそうするのを忘れたという理由だけで、グローバルソリューションの下で構築するときに何かが機能しない理由を理解するのに何時間も費やすことです.
したがって、簡単にするために、そのグローバルで包括的なソリューションからビルドする場合にのみ存在する、ある種の出力ディレクトリ設定またはビルド後のイベントが必要です。プロジェクト構成で何かを変更せずにこれを達成する方法はありますか?
更新 1
私が言及する必要があると思われるいくつかの追加の詳細:
このグローバル ソリューションは、エンド ユーザーがアプリケーションをインストールしたときに得られるものにできるだけ近づける必要があります。これは、アプリケーションのどの部分が機能していないかを把握する必要がある場合に、アプリケーション全体のデバッグに使用する予定であるためです。このバグをその部分に取り組んでいるチームに送信する前に。
これは、グローバル ソリューションでビルドする場合、出力ディレクトリ階層は、インストール後の Program Files と同じにする必要があることを意味します。たとえば、によって開発されたすべてのアドインを含む Program Files/MyApplication/Addins フォルダーがある場合チームが異なるため、アドイン プロジェクトからバイナリをコピーし、それに応じて出力ディレクトリに配置するためのグローバル ソリューションが必要です。
問題は、アドインを開発しているチームは、それがアドインであり、そのフォルダーに配置する必要があることを必ずしも認識していないため、相対的な出力ディレクトリを build/bin/Debug/Addins に変更できないということです。