我想要包含所有匹配*.c
的文件,包括子目录,除以外的任何文件,其路径(在解决方案根目录下)包含一个或多个组件(目录名称或filename)以下划线开头。
出于某种原因,这不起作用:
<ItemGroup>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\\]_.*`))" Include="../../src/foo/**/*.c"/>
</ItemGroup>
我如何在msbuild中执行此操作?我正在使用msbuild 14.0。
答案 0 :(得分:4)
您使用的sytnax可以过滤现有的ItemGroups,但不能在创建它时(我不会立即找到记录的位置);这意味着没关系:
<ItemGroup>
<MatchingCFiles Include="../../src/foo/**/*.c"/>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\\]_.*`))" Include="@(MatchingCFiles)"/>
</ItemGroup>