【问题标题】:msbuild: How can I exclude wildcard paths matching a regex?msbuild:如何排除与正则表达式匹配的通配符路径?
【发布时间】:2016-02-19 06:21:38
【问题描述】:

我想包含与*.c 匹配的所有文件,包括在子目录中,除了对于路径(在解决方案根目录下)包含一个或多个组件(目录名或文件名)的任何文件以下划线开头。

由于某种原因,这不起作用:

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

如何在 msbuild 中执行此操作?我正在使用 msbuild 14.0。

【问题讨论】:

    标签: regex msbuild wildcard


    【解决方案1】:

    您使用的 sytnax 可以很好地过滤现有的 ItemGroups,但不能在创建一个时(我没有立即找到记录在哪里);这意味着这没关系:

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

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 2023-03-30
      • 2020-09-30
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      相关资源
      最近更新 更多