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

时间:2019-03-06 18:27:53

标签: c# msbuild

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

  

MSBuild.exe路径\ to.sln / p:OutDir = C:\ out \ -m:4 / p:Configuration = QA / p:Platform =“任何CPU”

但是,当尝试对特定目标(T1,T2,T3)执行SLN时,这些目标是以系列而不是 parallel 构建的。仅创建了主要的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 =“ Any CPU”

尽管使用-m:6参数,但仅创建了一个工作节点;同一过程将花费2.5倍的时间。

  • 指定目标以阻止它们并行执行时,是否存在一些限制?
  • 有什么解决方法吗?

1 个答案:

答案 0 :(得分:1)

据我了解,并行msbuild仅适用于“ msbuild核心任务”。我的意思是,有一个msbuild基本任务:还原,构建,测试等,这些任务可以并行运行。

但是msbuild不会尝试并行化目标。在这种情况下,msbuild将按顺序运行它们。

目标适用于/t:Restore,Build,Test之类的情况,并且永远不会并行发生。

因此,您可以说这是限制。