MSBuild は、ビルド中に「これまでに」ビルドしたプロジェクトのリストを取得できますか?
ビルドが完了し@(ProjectsBuilt)
たファイルの名前が付けられた、アクセスできる架空の項目リストが欲しいです。csproj
「なぜこの機能なの?」と疑問に思うかもしれません。要約すると、依存関係の更新またはエクスポートに関係します-特にインクリメンタルビルド設定で。2 つの例を挙げます。
- Visual Studio ソリューションには、多数の「プラグイン」プロジェクトが含まれています。一部のプラグインが更新およびビルドされると、汎用スクリプトがビルドされたプロジェクトを「キャプチャ」し、すぐに nuget のパッケージ化とリポジトリのアップロードを開始します。
- Visual Studio ソリューションには、"実装" プロジェクトと "インターフェイス" プロジェクトが含まれています。つまり、結果のアセンブリの一部は、他のソリューションで使用するためにエクスポートすることを意図しています。いくつかのコード変更が行われた後、すべてのプロジェクトをビルドした結果の「インターフェイス」アセンブリは、特別な「共通」フォルダーにエクスポートされ、他のアプリケーションで使用されます。
確かに、上記の問題は、「エクスポートされた」または「プラグイン」の各プロジェクトに、適切な依存関係のエクスポート手順を適用するためのビルド後のスクリプトを含めることで解決できます。ただし、参加するすべての VS プロジェクトにビルド後の手順を追加する必要があるのは、アンチ DRY です。
MSビルドが「これまでに」ビルドされたプロジェクトの実行中の集計を単純に保持する場合、適切なビルドステップで、必要なすべての「依存関係のエクスポート」を一挙に、集中化されたmsbuildの場所から実行できます。この機能の対象となるプロジェクトは、プロジェクトごとのビルド手順をまったく必要としません。良い!