在Visual Studio里有一个“Build(构建)”菜单,点开它后会弹出如下图的子菜单,那里面的“Build(构建)”、“Rebuild(重建)”和“Clear(清理)”之间的区别是什么呢?在这里我将解释这个非常令人困惑的话题。
![e6fefe8f78294a36f4dd2d2a21a8c301.png](https://img-blog.csdnimg.cn/img_convert/e6fefe8f78294a36f4dd2d2a21a8c301.png)
Build Solution(构建解决方案)
- 它将执行的是一个增量的构建,如果VS认为它不需要重建时,它就不会这么做。如果项目没有发生变化,它也只是部分构建
- 编译被更改的代码文件(DLL和EXE)
每当我们构建任何项目或整个解决方案时,它将生成以下消息。
![6c387eb2bbf3368a3c56549b65820926.png](https://img-blog.csdnimg.cn/img_convert/6c387eb2bbf3368a3c56549b65820926.png)
Rebuid Solution(重建解决方案)
- 它的原理是先清理并从头开始构建解决方案,它会忽略之前做过的事情。这与“先清理后构建”的区别在于,重建它是一个项目一个项目来的,先清理一个项目再构建一个项目,一次一个,而不是先清理所有项目,然后再构建所有项目
- 它删除所有已编译的文件并再次编译它们,而不管代码是否已更改
当我们重新构建任何项目或整个解决方案时,它将生成以下消息。
![88270aa3db11d03ff1f751a51d3f3b7e.png](https://img-blog.csdnimg.cn/img_convert/88270aa3db11d03ff1f751a51d3f3b7e.png)
Clean Solution(清理解决方案)
- 它将从之前的构建中删除构建工件,如果构建目标目录(bin和obj)中还有其他文件,则可能不会将其删除,但实际的构建工件会被移除,我发现有时会彻底删除,有时则不会
- 它删除所有编译文件(DLL和EXE文件)
每当我们清理任何项目或整个解决方案时,它将生成以下消息。
![0227b599c684763802c60051a9df0883.png](https://img-blog.csdnimg.cn/img_convert/0227b599c684763802c60051a9df0883.png)
Rebuild vs Build
在下图的流程图应该可以帮您更好的理解关于Build和Rebuild。
![8141d8cfd64c683168c64e4493de8867.png](https://img-blog.csdnimg.cn/img_convert/8141d8cfd64c683168c64e4493de8867.png)
Rebuild vs Clear + Build
关于Rebuild(重建)与Clear(清理)+Build(构建)之间的区别,围绕着这一点似乎有一些混乱,不同之处在于每个项目Build和Clean发生的顺序不一样。
例如,我们有两个项目,Project 1和Project 2。
- 假如您执行的是Rebuild操作,那么系统执行的顺序是:Clear Project 1 -> Build Project 1 -> Clear Project 2 -> Build Project 2
- 假如您是先点击Clear按钮,之后再点击Build按钮。那么系统执行的顺序是:Clear Project 1 -> Clear Project 2 -> Build Project 2 -> Build Project 2
![d92167d48e07da901b4d201db2b80881.png](https://img-blog.csdnimg.cn/img_convert/d92167d48e07da901b4d201db2b80881.png)
希望以上的描述可以帮助您更好地理解Visual Studio中的Build、Rebuild和Clear之间的区别。