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

最后都变了- 提交于 2019-12-08 22:46:00

问题


You know, the one that outputs this=>

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

What it is cleaning?


回答1:


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.




回答2:


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.




回答3:


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"




回答4:


removes all the files associated with the build, output directories




回答5:


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.



来源:https://stackoverflow.com/questions/1603242/in-visual-studio-what-does-the-clean-command-do

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!