gpt4 book ai didi

visual-studio-2008 - 使用带有 maxcpucount 选项的 MSBUILD 时出现问题

转载 作者:行者123 更新时间:2023-12-03 07:49:34 26 4
gpt4 key购买 nike

我在 4 核机器上使用 MsBuild。我给出以下命令行来构建属于大型 VC++ 解决方案的 4 个项目(有超过 4 个项目,所有项目都没有相互依赖)。我使用的是 Visual Studio 2008。

为了加快构建时间,我尝试利用 maxcpucount 选项,但它似乎不起作用。我预计每个核心都会构建我在命令行提供的 4 个项目中的每一个。不幸的是,我测量了构建时间,无论有没有 maxcpucount 选项,我都得到了相同的精确结果。

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe MyVCppSolution.sln      /t:ProjA;ProjB;ProjC;ProjD /m

你知道我在这里做错了什么吗?

正确的说法是“一次构建 4 个 MyVCppSolution.sln 解决方案项目”,还是应该手动运行 4 个进程,每个进程构建最多 4 个解决方案的单个项目?

最佳答案

MSBuild 可以并行项目。您的命令行调用(使用/t)要求目标并行构建,这并不完全是设计。您还必须在核心 .proj 文件中设置并行标志

要实现您想要的目标(使用所有可用核心并行 4 个项目),您需要有一个调用 msbuild 并将 BuildInParallel 参数设置为 true 的“整体”proj 文件。然后,该调用将调用您的其他项目。 msbuild.exe 上的/m 和 BuillInParallel 的组合将为您提供您想要的内容。

所以希望:(如果您想要并行构建 ProjA、B、C、D)

文件 buildall.proj

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion=”3.5”>
<Target Name="default">
<MSBuild Projects="proja.proj, projb.proj, probc.proj,prod.proj" BuildInParallel="true"/>
</Target>
</Project>

然后你可以调用 buildall

msbuild.exe buildall.proj /m:4

关于visual-studio-2008 - 使用带有 maxcpucount 选项的 MSBUILD 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com