在Visual Studio中,“生成解决方案(Build Solution)”,“重新生成解决方案(Rebuild Solution)”和“清理解决方案(Clean Solution)”有何不同?
何时应该使用每个方法?
在Visual Studio中,“生成解决方案(Build Solution)”,“重新生成解决方案(Rebuild Solution)”和“清理解决方案(Clean Solution)”有何不同?
何时应该使用每个方法?
(这些链接指向devenv.exe命令行开关,但它们与菜单项执行的操作相同。)
构建解决方案:编译更改的代码文件(DLL和EXE)。
重新生成:删除所有已编译的文件,并再次编译它们,无论代码是否已更改。
清理解决方案:删除所有已编译的文件(DLL和EXE文件)。
您可以观看这个YouTube视频(Visual Studio Build vs. Rebuild vs. Clean (C# interview questions with answers)),在视频中我演示了它们之间的差异。下面是可视化表示,可以帮助您更详细地分析。
重建与(清理+构建)之间的区别,因为这方面也存在一些混淆:
区别在于每个项目的构建和清理顺序。假设您的解决方案有两个项目,“proj1”和“proj2”。如果您进行重建,则会对“proj1”进行清理(删除)“proj1”的已编译文件并进行编译。然后,它将采取第二个项目“proj2”,清除“proj2”的已编译文件并编译“proj2”。
但是,如果您执行“清理和构建”,它将首先删除“proj1”和“proj2”的所有已编译文件,然后先构建“proj1”,然后是“proj2”。
以下内容来自此链接:
编译(Build)是仅编译和链接上次编译以来有更改的源文件,而重新构建(Rebuild) 是编译和链接所有源文件,无论它们是否发生更改。通常情况下,编译是正常操作,速度更快。有时,项目目标组件的版本可能会不同步,需要重新构建才能使编译成功。实际上,您永远不需要清理。
构建解决方案 - 构建任何有更改的程序集。如果一个程序集没有更改,它将不会被重新构建。也不会删除任何中间文件。
最常用的选项之一。
重新生成解决方案 - 无论是否有更改都会重建所有程序集,但是不会删除中间文件。
在你注意到Visual Studio没有将最新更改纳入程序集中时使用。有时Visual Studio会出错。
清理解决方案 - 删除所有中间文件。
当其他方法都失败并且你需要清除所有内容重新开始时使用。
我认为重建(Rebuild)是先进行清理操作,然后再进行构建操作。也许我错了……有什么意见吗?
生成解决方案将构建已更改的所有项目。重新生成将构建所有项目,而不管是否更改。清理解决方案将删除所有临时文件,确保下一次构建完整。
构建解决方案 - 构建解决方案将构建应用程序,仅构建已更改文件的项目数量。它不清除任何现有的二进制文件,只是在bin或obj文件夹中替换更新的程序集。
重新构建解决方案 - 重新构建解决方案将构建整个应用程序,并构建解决方案中所有可用的项目并清理它们。在构建之前,它会清除bin和obj文件夹中的所有二进制文件。
清理解决方案 - 清理解决方案只是清除bin和obj文件夹中的所有二进制文件。
我有一个空白解决方案 BuildRebuildClean
和三个类库 Models
,Repository
,Notification
.
我在 Notification
类库中使用了 Models
和 Repository
。
然后:
Models
库项目中修改代码,然后构建解决方案。在下面的屏幕截图中,参考 DLL 的时间戳,EXE 在 Models
和 Notification
库中更新。BuildRebuildClean
。它会删除所有程序集、EXE和引用的文件以便重新编译。