Kal*_*son 23 msbuild filtering
如何根据特定条件(例如文件扩展名或项目元数据)过滤现有ItemGroup?
对于此示例,我将使用文件扩展名.我正在尝试过滤由VS定义的'None'ItemGroup,以便我的目标可以对给定扩展名的所有文件进行操作.
例如,可以定义以下内容:
<ItemGroup>
<None Include="..\file1.ext" />
<None Include="..\file2.ext" />
<None Include="..\file.ext2" />
<None Include="..\file.ext3" />
<None Include="..\file.ext4" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我想过滤上面的'None'ItemGroup,因此它只包含ext扩展名.请注意,我不希望指定所有扩展排除,因为他们会每个项目各不相同,我试图让我的目标可重复使用而无需修改.
我试过Condition在目标中添加一个:
<Target Name="Test">
<ItemGroup>
<Filtered
Include="@(None)"
Condition="'%(Extension)' == 'ext'"
/>
</ItemGroup>
<Message Text="None: '%(None.Identity)'"/>
<Message Text="Filtered: '%(Filtered.Identity)'"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,它不起作用.我得到以下输出:
Test:
None: '..\file1.ext'
None: '..\file2.ext'
None: '..\file.ext2'
None: '..\file.ext3'
None: '..\file.ext4'
Filtered: ''
Run Code Online (Sandbox Code Playgroud)
Ily*_*kov 37
<ItemGroup>
<Filtered Include="@(None)" Condition="'%(Extension)' == '.ext'" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10665 次 |
| 最近记录: |