msbuild:如何排除与正则表达式匹配的通配符路径?

大厦

我想包括所有匹配的文件*.c,包括子目录,除了其路径(在解决方案根目录下)包含一个或多个下划线开头的组件(目录名称或文件名)的文件之外。

由于某种原因,这是行不通的:

 <ItemGroup>
    <ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\\]_.*`))" Include="../../src/foo/**/*.c"/>
</ItemGroup>

如何在msbuild中做到这一点?我正在使用msbuild 14.0。

斯蒂金

您使用的语法可以很好地过滤现有的ItemGroup,但是在创建一个时就不行了(我没有立即找到记录在哪里)。这意味着可以:

<ItemGroup>
  <MatchingCFiles Include="../../src/foo/**/*.c"/>
  <ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\\]_.*`))" Include="@(MatchingCFiles)"/>
</ItemGroup>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章