使用msbuild安全删除陈旧文件

时间:2017-09-11 17:52:38

标签: msbuild msbuild-task

我有一个将源文件复制到临时目录的目标,这适用于多个项目。在以后的项目中,这些文件将传递给一种编译器。

目前不会清理暂存目录,因此删除源文件时,暂存目录中会存在过时的副本。

清除陈旧文件的暂存目录而不会对增量构建时间产生负面影响的最佳方法是什么? (即每次都没有完全删除登台目录)

1 个答案:

答案 0 :(得分:0)

使用此位脚本清除已从源中删除但仍存在于目标中的文件:

 <Target Name="DeleteStaleFiles">
   <!-- Remove stale files (files which have been deleted at the source but still exist in the destination).  -->
    <ItemGroup>
        <SourceFiles Include="@(SourceFiles->'$(Destination)\%(RecursiveDir)%(Filename)%(Extension)')" />
        <DestinationFiles Include="$(Destination)**\*.*" />
        <StaleFiles Include="@(DestinationFiles)" Exclude="@(SourceFiles)" />
    </ItemGroup>    
    <Message Text="Deleting Stale Files: @(StaleFiles, '%0A')" Condition="'@(StaleFiles->Count())' &gt; 0"/>
    <Delete Files="@(StaleFiles)"/>     
  </Target>