MSBuild コピー タスクでパスをハードコーディングせずに、MSBuild を使用して、1 つのプロジェクトからターゲット アプリケーションの出力ディレクトリに出力アセンブリをコピーしたい状況があります。シナリオは次のとおりです。
- プロジェクト A - Web アプリケーション プロジェクト
- プロジェクト B - ダル インターフェイス プロジェクト
- プロジェクト C - ダル導入プロジェクト
ビジネス層もありますが、私が解決しようとしている MSBuild の問題とは関係ありません。
私のビジネス層には、私の Dal.Interface プロジェクトへの参照があります。私の Web プロジェクトにはビジネス レイヤーへの参照があり、現状では、ビルドを実行すると、ビジネス レイヤーと Dal.Interface プロジェクトが出力に取り込まれます。ここまでは順調ですね。Web アプリを実行するには、Dal の実装が必要です。インターフェイスにコーディングを強制したいので、実装をどこにも参照させたくありません。参照がないということは、インテリセンスなどに表示されないことを意味します。
したがって、MSBuild のコピー操作を AfterBuild タスクとして処理することで、これを処理できると考えました (Web プロジェクトのビルド時にビルドする Dal 実装のセットアップがあり、参照されていません)。MSBuild パラメーターにパスやその他のものをハード コードしたくないので、Web アプリケーション プロジェクトの MSBuild ファイルから Dal プロジェクトの出力を参照する方法を見つけようとしています。
したがって、上記のプロジェクトに基づいて、これが実現することを望んでいます。
- Web アプリのビルドが開始されました
- 必要なすべてのプロジェクトがビルドされます (既に構成されているため、これは完了しています)
- MSBuild の "AfterBuild" タスクが開始され、プロジェクト C (Dal 実装) からの出力がプロジェクト A (Web アプリ) の Bin ディレクトリにコピーされます。
パート3は私が立ち往生しているところです。
私はこれができると確信していますが、私は助けになる良い参考文献を見つけていません。助けてくれてありがとう。