我与多个项目一起工作,我想递归删除所有名为“bin”或“obj”的文件夹,这样我就可以确保所有项目都会重新构建所有内容(有时这是迫使Visual Studio忘记所有以前的构建的唯一方法)。
是否有一种快速的方法来实现这一点(例如使用.bat文件),而不必编写。net程序?
我与多个项目一起工作,我想递归删除所有名为“bin”或“obj”的文件夹,这样我就可以确保所有项目都会重新构建所有内容(有时这是迫使Visual Studio忘记所有以前的构建的唯一方法)。
是否有一种快速的方法来实现这一点(例如使用.bat文件),而不必编写。net程序?
当前回答
我讨厌obj文件乱扔源代码树。我通常设置项目,以便它们在源树外输出obj文件。对于我通常使用的c#项目
<IntermediateOutputPath>..\..\obj\$(AssemblyName)\$(Configuration)\</IntermediateOutputPath>
用于c++项目
IntermediateDirectory="..\..\obj\$(ProjectName)\$(ConfigurationName)"
其他回答
从使用Windows PowerShell删除obj, bin和ReSharper文件夹
与Robert H的答案非常相似,只是语法更短
powershell运行 Cd(更改目录)到项目文件夹的根目录 粘贴并运行下面的脚本 Dir .\ -include bin,obj,resharper* -递归| foreach($) {rd $_。fullname -Recurse -Force}
这对我来说很好: 开始/d /r。%%d in (bin,obj, ClientBin,Generated_Code) do @if exist "%%d" rd /s /q "%%d"
为了达到这个目标,我总是在我的解决方案中添加一个新的目标。
<Target Name="clean_folders">
<RemoveDir Directories=".\ProjectName\bin" />
<RemoveDir Directories=".\ProjectName\obj" />
<RemoveDir Directories="$(ProjectVarName)\bin" />
<RemoveDir Directories="$(ProjectVarName)\obj" />
</Target>
您可以从命令行调用它
msbuild /t:clean_folders
这可以是您的批处理文件。
msbuild /t:clean_folders
PAUSE
在我们的构建服务器上,我们通过nant脚本显式删除bin和obj目录。
每个项目构建脚本都负责它的输出/临时目录。这样做效果很好。因此,当我们更改一个项目并添加一个新项目时,我们将脚本建立在一个工作脚本的基础上,您会注意到删除阶段并照顾它。
如果你是在你的逻辑开发机上做的,我还是会像其他人提到的那样,坚持通过Visual Studio进行清理。
我们有一个大的。sln文件与许多项目文件。我开始了一个“ViewLocal”目录的策略,所有非源代码控制的文件都位于这个目录中。该目录中有一个“Inter”和一个“Out”目录。分别用于中间文件和输出文件。
这显然让你很容易去到你的“viewlocal”目录,做一个简单的删除,以摆脱一切。
在花时间研究如何使用脚本解决这个问题之前,您可能会考虑设置一些类似的东西。
我不会说谎,在一个大型组织中维持这样的设置已经证明....有趣。特别是当您使用像QT这样的技术来处理文件和创建非源代码控制的源文件时。但那完全是另一回事了!