为了账号安全,请及时绑定邮箱和手机立即绑定

在Visual Studio中重建与清理+构建之间的区别

在Visual Studio中重建与清理+构建之间的区别

回首忆惘然 2019-11-07 10:22:18
在Visual Studio 2008中仅进行重建和执行“ 清理 + 生成”有什么区别?是清洁 + 构建不同然后做清洁 + 重建?
查看完整描述

3 回答

?
杨魅力

TA贡献1811条经验 获得超5个赞

重建=清理+构建(通常)

值得注意的细节:

  1. 对于多项目解决方案,“重建解决方案”对每个项目执行“清理”,然后执行“构建”(可能并行执行)。而“干净解决方案”之后是“构建解决方案”,则首先清理所有项目(可能并行),然后清理所有项目(可能并行)。当项目间的依赖关系发挥作用时,事件排序的这种差异会变得很明显。

  2. 这三个动作均对应于MSBuild目标。因此,项目可以覆盖“重建”操作以执行完全不同的操作。


查看完整回答
反对 回复 2019-11-07
?
qq_花开花谢_0

TA贡献1835条经验 获得超6个赞

即99%的时间重建=清理+重建。

但是不能保证它们是相同的。这3个操作(重建,构建,清除)代表不同的MSBuild目标。每个项目文件都可以覆盖其中的每个文件以执行自定义操作。因此,在启动clean + build(或完全删除它们)之前,某人完全有可能重写rebuild来执行多个操作。

非常极端的情况,但由于评论讨论而指出。


查看完整回答
反对 回复 2019-11-07
?
隔江千里

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将给出链接错误,并立即通知您,而不是为您提供行为异常的应用程序)


查看完整回答
反对 回复 2019-11-07
  • 3 回答
  • 0 关注
  • 648 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信