3 回答
TA贡献1811条经验 获得超6个赞
重建=清理+构建(通常)
值得注意的细节:
对于多项目解决方案,“重建解决方案”对每个项目执行“清理”,然后执行“构建”(可能并行执行)。而“干净解决方案”之后是“构建解决方案”,则首先清理所有项目(可能并行),然后清理所有项目(可能并行)。当项目间的依赖关系发挥作用时,事件排序的这种差异会变得很明显。
这三个动作均对应于MSBuild目标。因此,项目可以覆盖“重建”操作以执行完全不同的操作。
TA贡献1835条经验 获得超7个赞
即99%的时间重建=清理+重建。
但是不能保证它们是相同的。这3个操作(重建,构建,清除)代表不同的MSBuild目标。每个项目文件都可以覆盖其中的每个文件以执行自定义操作。因此,在启动clean + build(或完全删除它们)之前,某人完全有可能重写rebuild来执行多个操作。
非常极端的情况,但由于评论讨论而指出。
TA贡献1906条经验 获得超10个赞
1每个项目,重建项目=(清理项目+生成项目)。
2个解决方案,重建Sln = foreach项目(Clean项目+ Build项目)!= Clean Sln + Build Sln
假设您有一个Sln,包含proj1,proj2和proj3。
重建Sln =(清洁proj1->构建Proj1)+(清洁proj2->构建Proj2)+(清洁proj3->构建Proj3)
清洁Sln +构建Sln =(清洁proj1 +清洁proj2 +清洁proj3)->(构建proj1 +构建proj2 +构建proj3)
->表示串行,+表示并发
因此,如果您未正确配置项目依赖项而提交了许多代码更改,就有可能会导致Rebuild Sln导致某些项目链接到一个过时的lib,因为不能保证所有构建都经过全部清理。(在这种情况下,Clean Sln + Build Sln将给出链接错误,并立即通知您,而不是为您提供行为异常的应用程序)
- 3 回答
- 0 关注
- 754 浏览
添加回答
举报