代码之家  ›  专栏  ›  技术社区  ›  Dan Maharry

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

  •  0
  • Dan Maharry  · 技术社区  · 14 年前

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

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

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Benjamin Baumann    14 年前

    恐怕你必须用两行来做这件事:

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