In Visual Studio, what does the “Clean” command do?

前端 未结 5 664
小鲜肉
小鲜肉 2020-12-13 08:11

You know, the one that outputs this=>

------ Clean started: Project: Foo.Bar, Configuration: Debug Any CPU ------
========== Clean: 1 succeeded,

相关标签:
5条回答
  • 2020-12-13 08:37

    The output directories - it removes the code that it's previously built.

    It doesn't remove the bin/obj directories themselves (or the Debug/Release directories beneath them), just the actual .exe, .dll, etc files. Unfortunately this makes it less useful for my usual use of cleaning up output directories: when I want to zip up the source code. As the Clean action doesn't do this, I usually just delete the bin and obj directories directly.

    0 讨论(0)
  • 2020-12-13 08:42

    It goes through your output directories and deletes any build related files in them.

    I think you can also configure this by going to the Project's properties in

    Configuration Properties -> General, under "Extensions to Delete on Clean"

    0 讨论(0)
  • 2020-12-13 08:43

    removes all the files associated with the build, output directories

    0 讨论(0)
  • 2020-12-13 08:49

    Why not look for yourself? Open up Microsoft.Common.Targets (found under %windir%\Microsoft.NET) and you'll see a section like so:

    <!--
    ============================================================
                                        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)" />
    

    Keep reading to see exactly what each of those sub-targets does. (Some, of course, are just stubs for the user to override).

    Personally, I like to see what shenanigans my fancy-pants IDE is up to behind my back. To this end, I'd recommend increasing the amount of info written to the Output window. Tools -> Options -> Projects & Solutions -> Build & Run -> MSBuild verbosity -> change from "Minimal" to "Normal" or "Detailed."

    Try your Clean operation again and watch the output now! Correlating what you see to the *.targets files is a good way to start learning MSBuild.

    0 讨论(0)
  • 2020-12-13 08:55

    People use a 'clean' to force a complete rebuild from source. Your compiler doesn't rebuild every file every time if it hasn't changed.

    0 讨论(0)
提交回复
热议问题