「VC PlusPlus:MSBuild アイテムグループ変数」の版間の差分
編集の要約なし |
|||
17行目: | 17行目: | ||
<Text Include="doc\a.ja.txt" /> | <Text Include="doc\a.ja.txt" /> | ||
</ItemGroup> | </ItemGroup> | ||
<Target Name="MessageText" | <Target Name="MessageText" AfterTargets="Build"> | ||
<Message Text="@ (Text) =@(Text)" /> | <Message Text="@ (Text) =@(Text)" /> | ||
</Target> | </Target> |
2024年2月15日 (木) 22:06時点における版
概要
アイテムグループ変数は@(ItemGroup)のような形式でアットマークを使って表記する変数です。
アイテムグループの基礎
タグごとにアイテムグループという概念が存在します。以下のようにTextというアイテムが定義されていたとします。そうするとタグ名Textというアイテムグループが存在することになり、@(Text)で、その内容が出力できます。
<Project ...>
<ItemGroup>
<Text Include="doc\a.en.txt" />
<Text Include="doc\a.ja.txt" />
<Text Include="doc\a_hpnonstop.en.txt" />
<Text Include="doc\a_hpnonstop.ja.txt" />
<Text Include="doc\a.en.txt" />
<Text Include="doc\a.ja.txt" />
</ItemGroup>
<Target Name="MessageText" AfterTargets="Build">
<Message Text="@ (Text) =@(Text)" />
</Target>
</Project>
出力結果
@ (Text) = doc\a.en.txt;doc\a.ja.txt;doc\a_hpnonstop.en.txt;doc\a_hpnonstop.ja.txt;doc\a.en.txt;doc\a.ja.txt
このようにバッチのように複数行にはなりませんが、セミコロンでひとまとめにされたものとして、表示できます。@(text)は@(text->'%(Identity)')のように呼び出したの同じ出力になっています。