gpt4 book ai didi

msbuild - 如何根据文件名部分过滤MsBuild中的ItemGroup?

转载 作者:行者123 更新时间:2023-12-04 11:07:32 25 4
gpt4 key购买 nike

我有一个包含一些文件的ItemGroup(而且我无法控制此列表的生成方式):

<ItemGroup>
<AllFiles Include="Assembly1.dll;Assembly1.Tests.dll"/>
<AllFiles Include="Assembly2.dll;Assembly2.Tests.dll"/>
...
</ItemGroup>

我想创建第二个 ItemGroup(基于第一个),仅用于匹配 ****.Tests.dll的文件名。也就是说 FilteredFiles应该是: Assembly1.Tests.dllAssembly2.Tests.dll,...

到目前为止,我尝试了:
<ItemGroup>
<FilteredFiles Include="@(AllFiles)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(%(Filename), '\.Tests\.dll'))"/>
</ItemGroup>

但这似乎不起作用。

PS:我也想进行不区分大小写的匹配,但这是另一个问题。

最佳答案

您需要使用%而不是@使用项目批处理。这将逐项处理项目,而不是同时包含所有项目。您拥有合适的条件,我认为您在其他地方找到了。

<ItemGroup>
<FilteredFiles Include="%(AllFiles.Identity)" Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(%(Filename), '\.Tests\.dll'))"/>
</ItemGroup>

关于msbuild - 如何根据文件名部分过滤MsBuild中的ItemGroup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19656811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com