MSBuild通配符负面观察

时间:2014-08-12 17:38:21

标签: msbuild

我有一个包含以下内容的目录:

foo.css
foo.min.css
bar.css
bar.min.css

它还包含一堆其他随机文件,如图像。

我想编写一个可以使用通配符选择目录中所有文件的选择器,除了非缩小的.css文件。

这有效:

<MyFiles Include="$(MSBuildThisFileDirectory)**\*.*"
         Exclude="$(MSBuildThisFileDirectory)foo.css;$(MSBuildThisFileDirectory)bar.css" />

但我必须明确列出要排除的文件。不确定如何创建负面的lookbehind,如果文件以.css结尾并且前面没有.min然后将其排除。

1 个答案:

答案 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>