现在在我的MSBuild脚本任务删除文件夹Msbuild - 如何删除文件夹内容但不是文件夹本身?
<RemoveDir Directories="$(Bin)"/>
但是我宁愿删除内容的文件夹的但保持文件夹(如果有人在Windows中打开该文件夹资源管理器)。我怎样才能做到这一点?
现在在我的MSBuild脚本任务删除文件夹Msbuild - 如何删除文件夹内容但不是文件夹本身?
<RemoveDir Directories="$(Bin)"/>
但是我宁愿删除内容的文件夹的但保持文件夹(如果有人在Windows中打开该文件夹资源管理器)。我怎样才能做到这一点?
下载并安装MSBuild扩展包
<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="$(Bin)" />
这将删除所有文件和子文件夹:
<Target Name="CleanFolder">
<PropertyGroup>
<TargetFolder>c:\clean</TargetFolder>
</PropertyGroup>
<ItemGroup>
<FilesToClean Include="$(TargetFolder)\**\*"/>
<Directories Include="$([System.IO.Directory]::GetDirectories('$(TargetFolder)', '*', System.IO.SearchOption.AllDirectories))"
Exclude="$(TargetFolder)"/>
</ItemGroup>
<Delete Files="@(FilesToClean)" ContinueOnError="true"/>
<RemoveDir Directories="@(Directories)" />
</Target>
这也将是不错滴用openFiles散工具打开连接:
openfiles /disconnect /ID *
非常感谢解决方案。它帮助我解决了这个问题。 – 2013-09-10 16:30:05
什么是扩展包?我是否必须将其安装在所有同事的计算机和所有构建服务器上? – 2013-11-04 14:27:15
@ColonelPanic它是由Mike Fourie(而不是Microsoft)维护的有用MSBuild任务的集合。您可以安装它,但我更愿意将其添加到我的存储库,因此即使构建计算机上未安装MSBuild任务,也可以完成构建。 – labilbe 2016-08-11 11:01:21