【问题标题】:MSBuild requires 3 times the memory of Visual Studio for a clean buildMSBuild 需要 3 倍于 Visual Studio 的内存才能进行干净的构建
【发布时间】:2009-08-05 22:44:34
【问题描述】:

我们有一个包含 50 个项目(主要是类库和一些 Win Form 项目)的 Visual Studio 2005 解决方案。

使用新启动的 Visual Studio 峰值内存使用(由任务管理器记录)进行干净的调试构建显示大约 500mb。

使用 MSBuild 执行相同的构建(清理、调试),峰值内存使用量约为 1600mb,最终失败并出现 OutOfMemory 异常。

这是我正在执行的命令:

MSBuild LargeProject.sln /target:clean;build /nologo /property:Configuration=debug /verbosity:minimal

两者都在同一台装有 32 位 Windows XP Professional 和 2GB 物理内存的 PC 上运行。

我发现这个 MSDN article 描述了在 Visual Studio 和 MSBuild 中构建之间的差异,但没有解释为什么构建需要 3 倍的内存。

有人知道为什么会这样吗?如果有什么我可以做的来减少 MSBuild 的内存需求。

【问题讨论】:

    标签: memory visual-studio-2005 msbuild


    【解决方案1】:

    我从几乎所有其他项目都引用的 Visual Studio 解决方案中删除了一个项目。然后更改项目以引用项目的dll而不是项目。这将 MSBuild 的内存使用量从 1600mb 降低到了大约 1200mb(相差 400mb)并且成功了。

    删除的项目不是很大,大约 5 个类,最终调试 dll 为 40kb,发布版本为 28kb。该项目有 3 个引用 Microsoft.VisualBasic.Compatibility、System 和 System.Windows.Forms。

    我尝试从解决方案中删除引用较少的其他项目,但 MSBuild 仍然失败并出现 OutOfMemory 异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2015-04-10
      • 2018-11-15
      • 1970-01-01
      相关资源
      最近更新 更多