「VC PlusPlus:MSBuild アイテムグループ変数」の版間の差分

提供:yonewiki
編集の要約なし
17行目: 17行目:
     <Text Include="doc\a.ja.txt" />
     <Text Include="doc\a.ja.txt" />
   </ItemGroup>
   </ItemGroup>
   <Target Name="MessageText" AfterTarget="Build">
   <Target Name="MessageText" AfterTargets="Build">
     <Message Text="@ (Text) =@(Text)" />
     <Message Text="@ (Text) =@(Text)" />
   </Target>
   </Target>

2024年2月15日 (木) 22:06時点における版

VC PlusPlus:MSBuildに戻る。

概要

 アイテムグループ変数は@(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)')のように呼び出したの同じ出力になっています。

 

VC PlusPlus:MSBuildに戻る。