我与多个项目一起工作,我想递归删除所有名为“bin”或“obj”的文件夹,这样我就可以确保所有项目都会重新构建所有内容(有时这是迫使Visual Studio忘记所有以前的构建的唯一方法)。

是否有一种快速的方法来实现这一点(例如使用.bat文件),而不必编写。net程序?


当前回答

对我来说什么都没用。我需要删除bin和obj文件夹中的所有文件进行调试和发布。我的解决方案:

1.右击项目,卸载,右击再次编辑,到底部

2.插入

<Target Name="DeleteBinObjFolders" BeforeTargets="Clean">
  <RemoveDir Directories="..\..\Publish" />
  <RemoveDir Directories=".\bin" />
  <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

3.保存,重新加载项目,右键单击清洁和立即。

其他回答

对我来说什么都没用。我需要删除bin和obj文件夹中的所有文件进行调试和发布。我的解决方案:

1.右击项目,卸载,右击再次编辑,到底部

2.插入

<Target Name="DeleteBinObjFolders" BeforeTargets="Clean">
  <RemoveDir Directories="..\..\Publish" />
  <RemoveDir Directories=".\bin" />
  <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

3.保存,重新加载项目,右键单击清洁和立即。

这是我用于递归删除所有BIN和OBJ文件夹的批处理文件。

创建一个空文件,命名为DeleteBinObjFolders.bat 复制粘贴下面的代码到DeleteBinObjFolders.bat 将DeleteBinObjFolders.bat文件移动到与解决方案(*.sln)文件相同的文件夹中。

@echo off
@echo Deleting all BIN and OBJ folders...
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
@echo BIN and OBJ folders successfully deleted :) Close the window.
pause > nul

http://vsclean.codeplex.com/

查找Visual的命令行工具 工作室解决方案和运行清洁 指挥他们。这可以让你清洁 打开所有这些的/bin/*目录 你手头的旧项目 你的硬盘

实际上,你可以进一步使用PS的建议,在项目目录中创建一个vbs文件,就像这样:

Option Explicit
Dim oShell, appCmd
Set oShell  = CreateObject("WScript.Shell")
appCmd      = "powershell -noexit Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -WhatIf }"
oShell.Run appCmd, 4, false

为了安全起见,我包含了-WhatIf参数,所以如果在第一次运行时对列表感到满意,可以删除它。

“干净”还不够好吗?注意,您可以使用/t:clean从命令行调用msbuild。