无法并行 MSBUILD 多个“目标”参数

如下执行解决方案构建时,会创建多个工作节点,并在 2 分钟内完成该过程。

MSBuild.exe 路径\to.sln /p:OutDir=C:\out\ -m:4 /p:Configuration=QA /p:Platform="Any CPU"

但是,当尝试使用特定目标(T1、T2、T3)执行 SLN 时,这些目标是串行构建的,而不是并行构建的。仅创建主 msbuild.exe 节点;没有工人

MSBuild.exe -target:Deployment\T1 -target:Deployment\T2 -target:Deployment\T3 path\to.sln /p:OutDir=C:\out\ -m:6 /p:Configuration=QA /p:Platform ="任何 CPU"

尽管有 -m:6 参数,但只创建了一个工作节点;该过程需要 2.5 * 更长的时间来做同样的事情。

  • 指定阻止它们并行执行的目标时是否有一些限制?

  • 任何解决方法?


www说
浏览 168回答 1
1回答

一只甜甜圈

据我了解,并行 msbuild 仅适用于“msbuild 核心任务”。我的意思是,有一个 msbuild 基本任务:恢复、构建、测试等,这些任务可以并行运行。但 msbuild 不会尝试并行目标。在这种情况下,msbuild 将按顺序运行它们。目标适用于 , 之类的情况/t:Restore,Build,Test,并且永远不会并行发生。所以,你可以说这是限制。
打开App,查看更多内容
随时随地看视频慕课网APP