我有一个包含以下内容的目录:
foo.css
foo.min.css
bar.css
bar.min.css
它还包含一堆其他随机文件,如图像。
我想编写一个可以使用通配符选择目录中所有文件的选择器,除了非缩小的.css文件。
这有效:
<MyFiles Include="$(MSBuildThisFileDirectory)**\*.*"
Exclude="$(MSBuildThisFileDirectory)foo.css;$(MSBuildThisFileDirectory)bar.css" />
但我必须明确列出要排除的文件。不确定如何创建负面的lookbehind,如果文件以.css结尾并且前面没有.min然后将其排除。
答案 0 :(得分:1)
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyStyles Include="**\*.css" Exclude="**\*.min.css" />
<MyFiles Include="**\*" Exclude="@(MyStyles)" />
</ItemGroup>
<Target Name="MyCompiles">
<Message Text="%(MyFiles.Identity)" />
</Target>
</Project>