等待MSBuild删除完成

Joh*_*ore 5 msbuild

我正在使用MSBuild并具有删除任务,删除目录下的所有文件.下一个任务使用RemoveDir清除任何文件夹的目录.我有一个计时问题,在RemoveDir命令运行之前,目录并不总是完全清除Delete命令中的文件.发生大约一半的时间,当脚本出错时,b/c RemoveDir无法删除其中存在文件的目录.

有人可以帮我解决这个问题吗?

KMo*_*raz 4

确保您在运行操作RemoveDir后调用任务:DeleteDependsOnTargets

<Target Name="RemoveDirectories" DependsOnTargets="DeleteFiles">
  <RemoveDir Directories="@(DirsToRemove)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

然而,时间可能不是这里真正的问题。问题可能是DeleteFiles无法删除某些锁定或只读文件,从而导致RemoveDir任务无法完成。在这种情况下,请考虑使用MSBuild Extension Pack 的文件夹类,它可以强制删除所有文件。

<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="@(DirsToRemove)" Force="true" />
Run Code Online (Sandbox Code Playgroud)