我与多个项目一起工作,我想递归删除所有名为“bin”或“obj”的文件夹,这样我就可以确保所有项目都会重新构建所有内容(有时这是迫使Visual Studio忘记所有以前的构建的唯一方法)。
是否有一种快速的方法来实现这一点(例如使用.bat文件),而不必编写。net程序?
我与多个项目一起工作,我想递归删除所有名为“bin”或“obj”的文件夹,这样我就可以确保所有项目都会重新构建所有内容(有时这是迫使Visual Studio忘记所有以前的构建的唯一方法)。
是否有一种快速的方法来实现这一点(例如使用.bat文件),而不必编写。net程序?
当前回答
考虑到PS1文件在currentFolder(你需要删除bin和obj文件夹的文件夹)中
$currentPath = $MyInvocation.MyCommand.Path
$currentFolder = Split-Path $currentPath
Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
其他回答
“干净”还不够好吗?注意,您可以使用/t:clean从命令行调用msbuild。
我认为你可以右键点击你的解决方案/项目,然后点击“清洁”按钮。
据我所知,它是这样工作的。我现在没有VS.NET,所以不能测试它。
在添加到项目文件之前删除bin和obj:
<Target Name="BeforeBuild">
<!-- Remove obj folder -->
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
<!-- Remove bin folder -->
<RemoveDir Directories="$(BaseOutputPath)" />
</Target>
这是文章:如何删除bin和/或obj文件夹构建或部署之前
这招对我很管用:
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
根据superuser.com上的答案
我使用Robert H的轻微修改,跳过错误并打印删除文件。我通常也会清除.vs, _resharper和package文件夹:
Get-ChildItem -include bin,obj,packages,'_ReSharper.Caches','.vs' -Force -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -ErrorAction SilentlyContinue -Verbose}
另外值得注意的是,git命令清除所有更改,包括忽略的文件和目录:
git clean -dfx