在Visual Studio中,“清理”命令有什么作用?

时间:2009-10-21 19:59:39

标签: visual-studio build-process

你知道,那个输出这个=>

  

------清理开始:项目:Foo.Bar,配置:调试任何CPU ------
  ==========清洁:1成功,0失败,0跳过==========

它在清洁什么?

5 个答案:

答案 0 :(得分:67)

输出目录 - 它删除了以前构建的代码。

它不会删除bin / obj目录本身(或它们下面的Debug / Release目录),只删除实际的.exe,.dll等文件。不幸的是,这使得它对我清理输出目录的常用用法不太有用:当我想压缩源代码时。由于Clean操作不会这样做,我通常只是直接删除bin和obj目录。

答案 1 :(得分:27)

为什么不自己寻找?打开Microsoft.Common.Targets(在%windir%\ Microsoft.NET下找到),您将看到如下所示的部分:

<!--
============================================================
                                    Clean

Delete all intermediate and final build outputs.
============================================================
-->
<PropertyGroup>
    <CleanDependsOn>
        BeforeClean;
        CleanReferencedProjects;
        UnmanagedUnregistration;
        CoreClean;
        CleanPublishFolder;
        AfterClean
    </CleanDependsOn>
</PropertyGroup>
<Target
    Name="Clean"
    Condition=" '$(_InvalidConfigurationWarning)' != 'true' "
    DependsOnTargets="$(CleanDependsOn)" />

继续阅读以确切了解每个子目标的作用。 (当然,有些只是用户要覆盖的存根)。

就个人而言,我喜欢看看我的花式裤子IDE是什么恶作剧。为此,我建议增加写入“输出”窗口的信息量。工具 - &gt;选项 - &gt;项目&amp;解决方案 - &gt;建设与发展运行 - &gt; MSBuild详细程度 - &gt;从“最小”更改为“正常”或“详细”。

再次尝试清洁操作并立即观看输出!将您看到的* .targets文件关联起来是开始学习MSBuild的好方法。

答案 2 :(得分:14)

它遍历您的输出目录并删除其中的任何构建相关文件。

我认为你也可以通过转到

中的项目属性来配置它

配置属性 - &gt;一般情况下,“在清洁时删除的扩展”

答案 3 :(得分:3)

删除与构建,输出目录

关联的所有文件

答案 4 :(得分:1)

人们使用'干净'强制从源头完成重建。如果没有更改,编译器不会每次重建每个文件。