在Visual Studio 2008中进行重建和清洁+构建之间的区别是什么?清洁+重建与清洁+重建不同吗?
当前回答
在这篇博客文章中,作者链接了对这个问题的评论:
其实不! !它们是不平等的。 不同之处在于项目从清洁到构建的顺序。让 假设我们在一个解决方案中有两个项目。清洁,然后建立意志 对两个项目执行clean,然后将单独进行构建 而在重建时,项目A将获得和清洁,然后再建造 项目B将会是干净的,然后建造等等。
其他回答
另一个不同之处是:Clean会清除测试资源管理器中的测试结果,而Rebuild不会。
重建=清洁+构建(通常)
值得注意的细节:
For a multi-project solution, "rebuild solution" does a "clean" followed by a "build" for each project (possibly in parallel). Whereas a "clean solution" followed by a "build solution" first cleans all projects (possibly in parallel) and then builds all projects (possibly in parallel). This difference in sequencing of events can become significant when inter-project dependencies come into play. All three actions correspond to MSBuild targets. So a project can override the Rebuild action to do something completely different.
让我们根据默认的Clean和Build实现来定义默认的Rebuild实现:
每个项目:重建项目=清理项目+构建项目。 每个解决方案:重建sln = sln中的foreach项目(清洁项目+构建项目)。
注意,由于执行顺序的不同,重建sln与(Clean sln + Build sln) = (sln Clean项目中的foreach项目)+ (sln Build项目中的foreach项目)并不相同。此外,这个“foreach”可以并发执行,因此不同的任务可以在两种场景中并发运行。
假设您有一个包含proj1、proj2和proj3的sln。
Rebuild sln = (Clean proj1 + Build proj1) & (Clean proj2 + Build proj2) & (Clean proj3 + Build proj3) Clean Sln + Build Sln = (Clean proj1 & Clean proj2 & Clean proj3) + (Build proj1 & Build proj2 & Build proj3)
+表示连续,&表示并发。
因此,如果项目依赖项没有正确配置,那么在执行Rebuild sln时,可能会有一些项目链接到一个过时的库。这是因为不能保证在第一次构建开始之前完成所有清理。如果你执行Clean sln + Build sln,他们会给出一个链接错误,并立即让你知道,而不是给你一个有奇怪行为的应用程序。
Earl在99%的情况下重建=清洁+构建是正确的。
但不能保证它们是一样的。这3个动作(重建、构建、清除)代表不同的MSBuild目标。每一个都可以被任何项目文件覆盖以执行自定义操作。因此,在启动clean + build(或完全删除它们)之前,完全有可能覆盖rebuild来执行几个操作。
这是一个非常极端的情况,但由于评论讨论而指出了它。
来自http://www.cs.tufts.edu/r/graphics/resources/vs_getting_started/vs_getting_started.htm,(刚刚谷歌了一下):
Build意味着编译并链接自上次构建以来已经更改的源文件,而Rebuild意味着编译并链接所有源文件,而不管它们是否更改。构建是正常的事情,而且更快。有时项目目标组件的版本可能会不同步,为了使构建成功,必须重新构建。在实践中,你永远不需要Clean。
构建或重建解决方案构建或重建解决方案中的所有项目,而构建或重建则构建或重建StartUp项目,上面的屏幕截图中的“你好”。要设置StartUp项目,请在“解决方案资源管理器”选项卡中右键单击所需的项目名称,并选择“设置为StartUp项目”。项目名称现在以粗体显示。由于作业解决方案通常只有一个项目,因此构建或重建解决方案实际上与构建或重建相同。
Compile只编译当前正在编辑的源文件。当其余源文件处于不完整状态时,可以快速检查错误,这将阻止整个项目的成功构建。Ctrl-F7是编译的快捷键。
推荐文章
- 在Mac OS X上安装/升级gradle
- 如何在解决方案中找到未使用的NuGet包?
- 查看Visual Studio 2010+中的所有断点
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 如何禁用诊断工具?
- Visual Studio单击“查找结果”在错误的窗口中打开代码
- 无法打开Visual Studio -抛出错误“安装过程中无法运行”
- 我在哪里可以找到安装在Visual Studio中的TypeScript版本?
- Visual Studio代码如何解决合并冲突与git?
- _references.js是用来做什么的?
- Go是如何编译得这么快的?
- 如何为新的c#类/接口编辑Visual Studio模板?
- IIS Express Windows身份验证
- 配置系统初始化失败
- 在Visual Studio中是否有标准的快捷键来构建当前项目?