msbuild:如何排除匹配正则表达式的通配符路径?
msbuild: How can I exclude wildcard paths matching a regex?
我想包含匹配 *.c
的所有文件,包括子目录中的文件, 除了 其路径(在解决方案根目录下)包含一个或多个的任何文件以下划线开头的组件(目录名或文件名)。
出于某种原因,这不起作用:
<ItemGroup>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\]_.*`))" Include="../../src/foo/**/*.c"/>
</ItemGroup>
我如何在 msbuild 中执行此操作?我正在使用 msbuild 14.0.
您使用的语法适用于过滤现有的项目组,但在创建项目组时却不行(我没有立即找到记录的位置);这意味着没关系:
<ItemGroup>
<MatchingCFiles Include="../../src/foo/**/*.c"/>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\]_.*`))" Include="@(MatchingCFiles)"/>
</ItemGroup>
我想包含匹配 *.c
的所有文件,包括子目录中的文件, 除了 其路径(在解决方案根目录下)包含一个或多个的任何文件以下划线开头的组件(目录名或文件名)。
出于某种原因,这不起作用:
<ItemGroup>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\]_.*`))" Include="../../src/foo/**/*.c"/>
</ItemGroup>
我如何在 msbuild 中执行此操作?我正在使用 msbuild 14.0.
您使用的语法适用于过滤现有的项目组,但在创建项目组时却不行(我没有立即找到记录的位置);这意味着没关系:
<ItemGroup>
<MatchingCFiles Include="../../src/foo/**/*.c"/>
<ClCompile Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('%(Identity)', `.*[/\]_.*`))" Include="@(MatchingCFiles)"/>
</ItemGroup>