在Visual Studio中,“Clean”命令是干什么用的?

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

——清洁开始:项目:Foo.Bar,configuration:debugging任何CPU ——
==========干净:1成功,0失败,0跳过==========

它在清洗什么?

输出目录 – 它删除了它以前build立的代码。

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

为什么不找你自己? 打开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在我的背后是什么样的诡计。 为此,我build议增加写入输出窗口的信息量。 工具 – >选项 – >项目和解决scheme – >构build和运行 – > MSBuild详细程度 – >从“最小”更改为“正常”或“详细”。

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

它通过你的输出目录,并删除其中的任何生成相关的文件。

我想你也可以通过转到项目的属性进行configuration

configuration属性 – >一般,在“扩展删除干净”

删除所有与构build,输出目录相关的文件

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