在Visual Studio中,构建解决方案(Build Solution),重新构建解决方案(Rebuild Solution)和清理解决方案(Clean Solution)之间的区别是什么?

13 浏览
0 Comments

在Visual Studio中,构建解决方案(Build Solution),重新构建解决方案(Rebuild Solution)和清理解决方案(Clean Solution)之间的区别是什么?

在 Visual Studio 中,“生成解决方案”、“重新生成解决方案”和“清理解决方案”有什么不同?

何时该使用它们中的每一个?

admin 更改状态以发布 2023年5月23日
0
0 Comments

构建解决方案: 编译更改的代码文件(DLL和EXE)。

重新构建: 删除所有编译文件并重新编译它们,无论代码是否更改。

清除解决方案: 删除所有编译文件(DLL和EXE)。

您可以观看这个YouTube视频(Visual Studio Build vs. Rebuild vs. Clean (C# interview questions with answers)), 在视频中我已经演示了差异,以下是可视化的表示,这将帮助您更详细地分析它们。

Build vs Rebuild

重新构建与(清除+构建)之间的区别,因为似乎也有一些混淆:

区别在于每个项目的编译和清除顺序的方式。假设您的解决方案有两个项目,“proj1”和“proj2”。如果您进行重新构建,它将采取“proj1”,清除(删除)“proj1”编译文件并编译它。之后它将采取第二个项目“proj2”,清除“proj2”的编译文件并编译“proj2”。

但如果您进行“清除”和“构建”,它将首先删除“proj1”和“proj2”的所有编译文件,然后先构建“proj1”,然后是“proj2”。

Rebuild Vs Clean

0
0 Comments
  • 生成解决方案(Build solution)将执行增量编译:如果它认为它不需要重新构建某个项目,则不会这样做。如果某些部分已经构建完成,并且没有更改,它也可能使用部分构建的项目(我不知道它会到什么程度)
  • 重建解决方案(Rebuild solution)将清除并从头开始构建解决方案,忽略之前的所有操作。与"清理,然后构建"的区别在于,重建将逐个项目地清理-然后构建每个项目,而不是清理所有项目,然后构建所有项目。
  • 清理解决方案(Clean solution)将从先前构建的生成清除构建工件。如果构建目标目录(bin和obj)中有任何其他文件,它们可能不会被删除,但实际的构建工件将被删除。我看到过这种行为变化很大-有时删除得非常彻底,有时则不然-但是我现在会把VS的方式视为正确 🙂

(这些链接是到devenv.exe命令行开关的,但它们执行的操作与菜单项相同。)

0