如何在MSBuild中排除目录的内容而不是目录本身

时间:2010-09-27 13:44:01

标签: msbuild web-deployment-project

我正在使用Web部署项目2008来构建我的Web应用程序。我想从构建中排除几个文件夹的内容,但保留空白目录本身。但是,如果我这样做

<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\ImageCache\**\*.*" />

它将排除ImageCache目录本身。那么我该如何保留目录呢?提前谢谢?

1 个答案:

答案 0 :(得分:0)

我担心你必须分两行:

<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\ImageCache\**\*.*" />
<IncludeFromBuild Include="$(SourceWebPhysicalPath)\ImageCache\" />

但这不起作用,因为The "Copy" task does not support copying directories。 因此,我建议您排除文件,并在AfterMerge目标中创建一个空目录:

<ItemGroup>
  <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\ImageCache\**\*.*" />
<ItemGroup>

<...>

<Target Name="AfterMerge">
  <MakeDir Directories="$(SourceWebPhysicalPath)\ImageCache" />
</Target>