【问题标题】:Exists any way (or advice) to speed-up c#/WPF projects build?是否有任何方式(或建议)来加速 c#/WPF 项目的构建?
【发布时间】:2012-11-06 10:46:37
【问题描述】:

我有 +-10 个项目的应用程序(VS2010 中的解决方案)。其中一些项目非常大(数十个文件夹和数百个文件)。

当我在较低级别的项目中进行更改并且我想运行我的测试(+-10 秒)时,我必须等待 2 分钟才能构建项目。 这是非常低效的。

有什么方法可以加快构建速度?例如,将当前项目拆分为多个项目或其他?

或者是否有一些通用的建议和建议可以加快在 Visual Studio 中构建项目的速度?

【问题讨论】:

  • 我的本能反应 - 很少测试高级组件,并且每天最多两次。对细节问题使用低级单元测试。
  • 根据更改的频率将您的项目拆分为多个解决方案。例如,如果您有一些项目不会进行频繁更改,请将它们保存在单独的解决方案中,并将经常修改的项目定位到一个解决方案中,并在另一个解决方案中测试项目。
  • @Sandeep 这将使重构成为一场绝对的噩梦,除非您拥有针对所有项目的专门用于该目的的解决方案。但是,您必须维护三个解决方案,这也是一件苦差事。
  • @J.Steen:是的,我同意。另一种方法可能是为您实际上不想构建的项目禁用“构建”选项。例如,我猜您不希望每次构建解决方案时都构建测试项目。

标签: c# .net wpf visual-studio-2010


【解决方案1】:

试试这个: 转到“工具”菜单->“选项”->“项目和解决方案”->“构建和运行” 并将“最大并行项目构建数”的值增加到 32 或更大。

【讨论】:

    【解决方案2】:

    根据我的经验,大量项目的解决方案在 vs2010 上构建缓慢,您无能为力:

    1. 减少项目数量 - 较大的单个项目将比许多较小的项目构建得更快。
    2. 准备一组构建配置 Build->ConfigruationManager 仅构建项目的一部分,因为如果公共接口未更改,您不必构建依赖于已更改项目的项目。这可能很难使用,并且在运行时可能会出现一些意外错误。还要确保您的所有项目都指向单个 Bin\Debug Bin\Release 文件夹,以便在应用程序启动时加载新的 dll。这是必需的,因为如果您不构建项目,其依赖项将不会被复制到其输出目录。
    3. 升级到 vs 2012。这是您可以选择的最佳选择。

    【讨论】:

    • 升级到VS 2012(或链接)后,您有任何加速经验吗?
    • 是的,我们最近迁移到了 vs2012,总的来说它更快。请注意,构建性能和整体体验会增加很多东西(例如,插件往往会减慢速度)。对于在同一台机器上进行重建过程的解决方案 31 个项目,我得到了大约 1/3 的改进。比 vs1202 感觉要好得多,例如烦人的窗口“正在处理来自后台线程的请求”几乎从不出现。
    【解决方案3】:

    尝试使用允许并发测试执行以及影子构建的工具 - NCrunch 或 MightyMoose。 还要尝试摆脱未使用的引用 - 例如,将仅测试您的核心项目的所有测试移至单独的项目,以便它们在构建核心后立即执行。尽量不要使用 MS 访问器,因为它们会强制重新编译它们引用的所有项目。当然也可以使用 SSD 磁盘。

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2020-02-26
      • 1970-01-01
      相关资源
      最近更新 更多