【问题标题】:msbuild slower than devenvmsbuild 比 devenv 慢
【发布时间】:2011-01-28 19:00:07
【问题描述】:

在从命令行使用 devenv 或 msbuild 构建 VS2008 解决方案文件时,我遇到了构建持续时间方面的性能不一致问题。

我的解决方案同时包含 C# 和 C++ 项目,我得到了以下结果:

devenv.exe(命令行或 ide 中):7 分钟 msbuild.exe:14 分钟

我尝试通过 /maxcpucount 和 /p:VCBuildAdditionalOptions=m# 调整 msbuild 开关,但到目前为止没有运气。

有什么想法吗?

【问题讨论】:

    标签: msbuild visual-c++ devenv


    【解决方案1】:

    在 VC 项目上,MSBuild 可能会变慢。它做了一些体操来构建它们,因为它们不是 MSBuild 格式,并且不能获得太多的并行性。相反,如果您需要性能,请尝试在命令行 - devenv.exe /build 上运行 VS。或者,升级到 VS2010,因为 VC 项目是由 MSBuild 本地构建的,您将恢复您的性能。它通常会比 VS 更快。

    当然,获得构建速度的杀手锏方法是只构建已更改的内容,并依赖增量构建。大多数时候,大多数开发人员都应该进行快速增量构建。

    【讨论】:

    • 这是否意味着 Visual Studio 2008 (devenv.exe) 有一个内置的 VC++ 构建系统,还是它使用了其他外部工具,例如一些 make.exe
    • VS2008 使用 MSBuild,但是当 MSBuild 检测到 VC++ 项目时,它会自动调用 VCBuild。 blogs.msdn.com/b/srikanthr/archive/2007/05/07/…
    【解决方案2】:

    您正在运行的完整 msbuild 命令是什么?

    顺便说一句,您是否将构建输出调低为“安静”或“最小”?这会稍微减少构建时间...

    在 IDE 中构建 7 分钟!!就我个人而言,我会发疯,调试一定是一场噩梦:-|

    【讨论】:

    • msbuild.exe 具有重建​​目标、默认详细级别以及使用并行构建和多核的选项,如上所示。到目前为止,更改命令行开关似乎并没有产生明显的效果。
    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    相关资源
    最近更新 更多