【问题标题】:best practice to avoid rebuild in vs2010避免在 vs2010 中重建的最佳实践
【发布时间】:2012-09-09 09:55:25
【问题描述】:

我有一个解决方案,它的一个项目编译时间太长而且很少更改。这意味着如果开发人员“重建”整个解决方案将需要时间(尽管在这个特定项目中没有任何改变)。

有人建议我可能添加一些“预构建事件命令行”,但我将如何检查是否需要编译(我确实希望它编译它已更改)?并且 - 如果我能失败 - 这是一个好习惯吗? (在持续集成等方面)

如果不需要,请随意提出任何其他我可以避免重建的方法,即使某些开发人员确实打算为整个解决方案重建。

【问题讨论】:

  • 是否有任何特定原因必须重建整个项目,而不是让 IDE 只编译已修改的文件?
  • 当您的 IDE 的功能明确表示会这样做时,我会避免任何阻止某些部分构建的技巧。这只会导致您认为“为什么它似乎没有接受我的更改?”的情况。无论如何,只要我的 2 美分...
  • 好问题。这里的一些开发人员习惯于按“重建”。这是他们希望确保从头开始重新构建 DLL 的“干净”流程的一部分。他们不关心这个特定的项目,因为它是由同一源流上的另一个团队处理的。所以我不希望他们改变习惯。
  • 您需要向您的开发人员解释“重建”的意思是“无论是否有必要,从头开始重建所有内容”。我会尝试解释构建系统足够聪明,可以找出需要自动重建的内容。我非常了解这种“怀疑主义”。通常,当开发人员习惯于使用设置不当或以其他方式搞砸的构建系统时,就会出现这种情况......在任何情况下,我都不会故意破坏构建过程,只是为了保持一些旧(坏)习惯。跨度>

标签: c++ visual-studio-2010 rebuild pre-build-event prebuild


【解决方案1】:

VS 通常会找出需要重新构建的内容,然后只编译合适的项目。不过,您可以采取一些步骤:

  • 避免更改标题,这些会触发包含它们的所有翻译单元的重新构建
  • 使用预编译的头文件
  • 使用前向声明而不是包含在头文件中(如果可能)
  • 将大型解决方案分解为相互动态链接的模块化项目

【讨论】:

  • 我还包括尽可能远离模板
  • 模板是什么意思?
猜你喜欢
  • 2019-04-03
  • 1970-01-01
  • 2010-11-28
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2016-11-25
相关资源
最近更新 更多