假设我在文件夹中有一堆文件:
foo.test.txt
bar.txt
...
我想创建一个ItemGroup来排除包含“.test”的文件。在标题的某处,我将如何在MSBuild中执行此操作?
<!-- Can't change this part -->
<Items Include="*.txt" />
<CreateItem Include="@(Items)" Condition="'%(Items.Exclude)'!='true' AND (???)">
<Output TaskParameter="Include" ItemName="ItemsToProcess"/>
</CreateItem>
哪里???应该是这样的:
!Contains(%(Items), ".test.")
除了我不知道如何在MSBuild中这样做。
答案 0 :(得分:3)
如何使用Exclude
:
<CreateItem Include="@(Items)" Exclude="*test*" >
<Output TaskParameter="Include" ItemName="ItemsToProcess"/>
</CreateItem>
答案 1 :(得分:2)
KMoraz是一个良好的开端,但是从MSBuild 3.5开始,你甚至可以在目标内部使用ItemGroup语法。所以这就像是:
<Project ...>
<ItemGroup>
<Items Include="*" Exclude="*.text.*"/>
</ItemGroup>
</Project>