現在在我的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