VC PlusPlus:MSBuild Distinct
2024年2月16日 (金) 20:24時点におけるYo-net (トーク | 投稿記録)による版 (ページの作成:「VC PlusPlus:MSBuildに戻る。 == '''概要''' == Distinctはアイテムグループの中に記述できる特別なキーワードのひとつです。アイテムの重複している部分を一つにまとめます。アイテムがいろいろなファイルを差していて、最低限必要なディレクトリ名を唯一に絞っていくような処理によく使われます。 <syntaxhighlight lang="xml"> <Pr…」)
概要
Distinctはアイテムグループの中に記述できる特別なキーワードのひとつです。アイテムの重複している部分を一つにまとめます。アイテムがいろいろなファイルを差していて、最低限必要なディレクトリ名を唯一に絞っていくような処理によく使われます。
<Project ...>
<ItemGroup>
<Text Include="doc\a.en.txt">
<LinkCompiled>True</LinkCompiled>
</Text>
<Text Include="doc\a.ja.txt">
<LinkCompiled>False</LinkCompiled>
</Text>
</ItemGroup>
<Target Name="MessageText" AfterTargets="Build">
<Message Text="@ (Text) = {@(Text->'%(Identity)'->DirectoryName()->Distinct())}" />
</Target>
</Project>
出力結果
@ (Text) = {C:\Users\(UserID)\source\repos\(ProjectName)\doc}
アイテムに対するファイルが存在するとき、その絶対パスを取得できます。バッチになっている場合はセミコロンで接続されて表示されます。