在Visual Studio 2008中进行重建和清洁+构建之间的区别是什么?清洁+重建与清洁+重建不同吗?
当前回答
Visual Studio 2022的文档解释说:
Choose Build or Build Solution, or press Ctrl+Shift+B, to compile only those project files and components that have changed since the most recent build. The Build command becomes Build Solution when a solution includes more than one project. Choose Rebuild Solution to "clean" the solution and then build all project files and components. Choose Clean Solution to delete any intermediate and output files. With only the project and component files left, new instances of the intermediate and output files can then be built.
更多信息请访问:https://learn.microsoft.com/en-us/visualstudio/ide/building-and-cleaning-projects-and-solutions-in-visual-studio?view=vs-2022
其他回答
另一个不同之处是: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,他们会给出一个链接错误,并立即让你知道,而不是给你一个有奇怪行为的应用程序。
Visual Studio 2022的文档解释说:
Choose Build or Build Solution, or press Ctrl+Shift+B, to compile only those project files and components that have changed since the most recent build. The Build command becomes Build Solution when a solution includes more than one project. Choose Rebuild Solution to "clean" the solution and then build all project files and components. Choose Clean Solution to delete any intermediate and output files. With only the project and component files left, new instances of the intermediate and output files can then be built.
更多信息请访问:https://learn.microsoft.com/en-us/visualstudio/ide/building-and-cleaning-projects-and-solutions-in-visual-studio?view=vs-2022
Earl在99%的情况下重建=清洁+构建是正确的。
但不能保证它们是一样的。这3个动作(重建、构建、清除)代表不同的MSBuild目标。每一个都可以被任何项目文件覆盖以执行自定义操作。因此,在启动clean + build(或完全删除它们)之前,完全有可能覆盖rebuild来执行几个操作。
这是一个非常极端的情况,但由于评论讨论而指出了它。
推荐文章
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- Visual Studio复制项目
- 如何在iis7应用程序池中设置。net Framework 4.5版本
- iOS -构建失败,CocoaPods无法找到头文件
- Visual Studio - Resx文件默认“内部”为“公共”
- 在Visual Studio 2010中有快速查找文件的方法吗?
- Nuget连接尝试失败“无法为源加载服务索引”
- 在Visual Studio中查看多个项目/解决方案
- Visual Studio打开默认浏览器,而不是Internet Explorer
- 有Grunt生成index.html不同的设置
- csproj文件中的“Service Include”是干什么用的?
- 如何在Visual Studio中找到堆栈跟踪?
- 使用不同的Web。在开发和生产环境中进行配置
- 是否有一种方法可以在Visual Studio中删除一行而不剪切它?