首页 文章

Visual Studio中Rebuild和Clean Build之间的区别

提问于
浏览
278

只是 Rebuild 与Visual Studio 2008中的Clean Build有什么区别? Clean Build是否与Clean Rebuild不同?

5 回答

  • 4

    1每个项目,重建项目=(清理项目构建项目) .

    2每个解决方案,重建Sln = foreach项目(清洁项目构建项目)!= Clean Sln Build Sln

    假设您有一个Sln,包含proj1,proj2和proj3 .

    重建Sln =(Clean proj1 - > Build Proj1)(Clean proj2 - > Build Proj2)(Clean proj3 - > Build Proj3)

    Clean Sln Build Sln =(清洁proj1清洁proj2清洁proj3) - >(构建proj1构建proj2构建proj3)

    • 表示串行,表示并发

    因此,当您没有正确配置项目依赖项时,有可能提交大量代码更改,Rebuild Sln会导致您的某些项目链接到陈旧的lib,因为所有构建都不能保证在完全清除之后 . (在这种情况下,Clean Sln Build Sln会给出链接错误,并立即通知您,而不是给您一个奇怪行为的应用程序)

  • 11

    来自http://www.cs.tufts.edu/r/graphics/resources/vs_getting_started/vs_getting_started.htm,(只是谷歌搜索):

    构建意味着仅编译和链接自上次构建以来已更改的源文件,而重建意味着编译和链接所有源文件,无论它们是否更改 . 构建是正常的事情并且更快 . 有时,项目目标组件的版本可能会不同步,并且必须进行重建才能使构建成功 . 在实践中,您永远不需要清洁 .

    构建或重建解决方案构建或重建解决方案中的所有项目,而构建或重建构建或重建StartUp项目,在上面的屏幕截图中“hello” . 要设置StartUp项目,请在Solution Explorer选项卡中右键单击所需的项目名称,然后选择Set as StartUp project . 项目名称现在以粗体显示 . 由于家庭作业解决方案通常只有一个项目,因此构建或重建解决方案实际上与构建或重建相同 .

    编译只编译当前正在编辑的源文件 . 当其他源文件处于不完整状态时,可以快速检查错误,从而阻止整个项目的成功构建 . Ctrl-F7是Compile的快捷键 .

  • 284

    Earl是正确的,99%的时间Rebuild = Clean Build .

    但他们不能保证是一样的 . 3个动作(重建,构建,清理)代表不同的MSBuild目标 . 任何项目文件都可以覆盖其中的每一个以执行自定义操作 . 因此,在启动干净构建(或完全删除它们)之前,某人完全有可能覆盖rebuild以执行多个操作 .

    非常一个极端的案例,但由于评论讨论指出它 .

  • 159

    this blog post,作者链接为a comment on this question

    其实没有!!!他们不平等 . 不同之处在于序列项目变得干净和构建 . 假设我们在解决方案中有两个项目 . 清理然后构建将对两个项目执行清理,然后在重建项目A时将单独进行构建将获得并清理然后在该项目B之后构建B将是干净的,然后构建等等 .

  • 48

    重建=清洁构建(通常)

    值得注意的细节:

    • 对于多项目解决方案,“重建解决方案”执行“清理”,然后为每个项目执行“构建”(可能并行) . 而“清洁解决方案”后跟“构建解决方案”首先清理所有项目(可能并行),然后构建所有项目(可能并行) . 当项目间依赖性发挥作用时,事件排序的这种差异可能变得很重要 .

    • 所有三个操作都对应于MSBuild目标 . 因此,项目可以覆盖重建操作以执行完全不同的操作 .

相关问题