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

Arn*_*psa 65 build-process visual-studio

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

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

什么是清洁?

Jon*_*eet 71

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

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

  • 值得注意的是,在VS 2013中,Clean Solution命令只会影响当前活动的配置(例如:如果您的解决方案设置为Debug配置,Clean Solution将不会对Release文件夹中的文件执行任何操作). (2认同)

Ric*_*erg 30

为什么不找自己?打开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)" />
Run Code Online (Sandbox Code Playgroud)

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

就个人而言,我喜欢看看我的花式裤子IDE是什么恶作剧.为此,我建议增加写入"输出"窗口的信息量.工具 - >选项 - >项目和解决方案 - >构建和运行 - > MSBuild详细程度 - >从"最小"更改为"正常"或"详细".

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


Jos*_*eph 15

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

我想你也可以通过转到Project的属性来配置它

配置属性 - >常规,在"清除时删除扩展"下