MSBuildで2つのアイテム(ItemGroup
)を組み合わせてマトリクスを作成する方法について。 あるいはn個のアイテムとm個のアイテムから計n×m個のアイテムを生成する方法について。
例として、TargetFrameworks
とConfiguration
やRuntimeIdentifiers
の組み合わせすべてをItemGroup
として作成したい場合などを想定する。
2組のアイテムを組み合わせてn×mのマトリクスを作成する
1組目のアイテムn個を元に別のアイテムを新たに作成し、そのメタデータとして2組目のアイテムの値m個を持たせる。 これにより、2組のアイテムの値を組み合わせた計n×m個のアイテムを作成する。
2組のアイテムとメタデータを組み合わせてn×mのマトリクスを作成する
2組のアイテムとそのアイテムが持つメタデータから、それぞれの値を組み合わせた計n×m個のアイテムを作成する。
メタデータを含む場合も、先と同様に組み合わせてマトリクスを作成できる。
3組のプロパティ・アイテムから出力パスの組み合わせ一覧を作成する
応用・具体例として、build-configuration\target-framework\assembly-file
形式の出力パス一覧を作成する。
この例ではtarget-frameworkのみセミコロン区切りのプロパティTargetFrameworks
から取得する場合を考える。