如何清理Visual Studio bin和obj文件夹

如果你右键点击一个文件夹,你会看到一个“清洁”菜单项。 我认为这将清理(删除)obj和bin目录。 但是,据我所知,它什么都不做。 有另一种方法吗? (请不要告诉我去Windows资源管理器或cmd.exe)我想删除obj和bin文件夹,以便我可以轻松地压缩整个事情。


正如其他人已经回应,Clean将删除由构建生成的所有工件。 但它会留下一切。

如果你在你的MSBuild项目中有一些自定义项,这可能会给你带来麻烦并留下你认为应该删除的东西。

你可以通过简单的改变你的。* proj来避开这个问题。

<Target Name="SpicNSpan"
        AfterTargets="Clean">
    <RemoveDir Directories="$(OUTDIR)"/>
</Target>

这将删除当前平台/配置的bin文件夹中的所有内容。

------编辑基于萨满回答下面的轻微进化(分享选票并给他一些)

<Target Name="SpicNSpan"  AfterTargets="Clean">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

----再次使用来自xDisruptor的部分编辑,但是我删除了.vs删除,因为在.gitignore(或等效)

更新了VS 2015。

<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
     <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
     <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
</Target>

他还提供了一个很好的建议,如果你有多个项目推动这个任务,那么这个任务将更易于部署和维护。

如果您对此答案投票,一定要为他们投票。


对于Visual Studio 2015,MSBuild变量已经改变了一下:

  <Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
         <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
         <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
         <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
  </Target>

请注意,此代码段也会从解决方案的根目录中清除.vs文件夹。 如果您觉得删除.vs文件夹是一种矫枉过正的行为,您可能需要将相关行注释掉。 我已启用它,因为我注意到,在某些第三方项目中,当.vs文件夹中存在文件ala application.config时,会导致问题。

附录:

如果您正在优化解决方案的可维护性,则可能需要进一步采取措施,并将上面的代码片段放入单独的文件中,如下所示:

  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
       <Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
            <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
            <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
            <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
       </Target>
  </Project>

然后将这个文件包含在每个* .csproj文件的最后,如下所示:

     [...]
     <Import Project="....ToolsExtraCleanup.targets"/>
  </Project>

通过这种方式,您可以在一个地方集中或精调额外清理逻辑,而无需每次手动编辑每个* .csproj文件,而无需每次想要进行改进。


在构建之前删除bin和obj添加到项目文件中:

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

这里是文章:如何在构建或部署之前删除bin和/或obj文件夹

链接地址: http://www.djcxy.com/p/26267.html

上一篇: How to clean Visual Studio bin and obj folders

下一篇: Git Clone: Just the files, please?