我有一个任务,需要根据文件扩展名选择一些文件,但希望某些文件夹不被处理。问题是似乎排除过滤器在包含过滤器之前应用,因此最终所有文件都被包含。
这是我选择文件的地方:
<CreateItem Exclude="**\.svn\**;
$(MSBuildProjectDirectory)\obj\**;
$(MSBuildProjectDirectory)\bin\**;
$(MSBuildProjectDirectory)\My Project\*.*;
$(MSBuildProjectDirectory)\Properties\*.*;
$(MSBuildProjectDirectory)\Dependencies\*.*;
$(MSBuildProjectDirectory)\Installation\**;
$(MSBuildProjectDirectory)\Extenders\**\*.*"
Include="$(MSBuildProjectDirectory)\**\*.ascx;
$(MSBuildProjectDirectory)\**\*.aspx;
$(MSBuildProjectDirectory)\**\*.css;
$(MSBuildProjectDirectory)\**\*.xml;
$(MSBuildProjectDirectory)\**\*.xslt;
$(MSBuildProjectDirectory)\**\*.js;
$(MSBuildProjectDirectory)\**\*.resx;
$(MSBuildProjectDirectory)\**\*.rpt;
$(MSBuildProjectDirectory)\**\*.gif;
$(MSBuildProjectDirectory)\**\*.jpg;
$(MSBuildProjectDirectory)\**\*.png;"
在这种情况下,如果“排除”文件夹中包含任何扩展名与“包括”列表匹配的文件,则仍将在最终列表中包括它们。因此,问题是如何强制从排除的文件夹中排除所有文件。注意:编辑后,MsBuild文件中似乎还存在另一个问题导致失败,现在已按预期工作。