MSBuildファイルにプロジェクトのリストがあります。
<ItemGroup>
<SubProject Include="**\*.csproj" />
</ItemGroup>
次に、各プロジェクトで、各プロジェクトTargetPath
のメタデータプロパティに設定します。
各プロジェクトのターゲットパスを抽出し、それを個別のアイテムリストに配置する方法はすでに知っています。
<Target Name="ExtractTargetPaths">
<MSBuild Projects="%(SubProject.Identity)" Targets="GetTargetPath">
<Output TaskParameter="TargetOutputs" ItemName="SubProjectTargetPath" />
</MSBuild>
</Target>
SubProject
ただし、アイテムの個別のリストを作成するのではなく、アイテムのメタデータとしてその「SubProjectTargetPath」にアクセスできるようにしたいと思います。
つまり、たとえば次のように書く代わりに:
<SomeTask Parameter="%(SubProjectTargetPath.Identity)" />
私は次のようなものを書くことができるでしょう:
<SomeTask Parameter="%(SubProject.TargetPath)" />