【发布时间】:2018-04-19 04:08:35
【问题描述】:
假设我有这个定义
<MSBuild
Projects="$(MSBuildProjectFile)"
Condition="'@(FilesToCompile)' != ''"
Targets="buildcpp"
Properties="CPPFILE=%(FilesToCompile.FullPath);OBJFILE=$(ObjectFolder)\%(FilesToCompile.Filename).doj;IncludeDirs=$(IncludeDirs)"
/>
由于task batching,此目标被执行多次,FilesToCompile 中的每个文件执行一次。重要的是,每次调用都是完全独立的,因此非常适合并行化。
问题
如何为task batching 启用“并行模式”?
不是重复的
我想用不同的属性值多次调用相同的目标,为此,我需要并行完成batching。
链接的问题不做批处理,它使用不同的项目。
【问题讨论】:
-
我看不出这与链接的副本有何不同:您是否尝试过答案的示例代码?它以不同的属性多次构建同一个项目,并行。正是你要问的?
-
@stijn 示例代码不会遍历 ItemGroup
FilesToCompile.FullPath。使用链接的解决方案,我必须手动“展开”整个项目组。 -
这是一个完全不同的问题:它是关于如何多次创建一个包含项目的 ItemGroup,每个项目的 Properties 元数据都有不同的值。您不必手动执行此操作,只需使用批处理声明一个项目。因此,您不需要需要并行批处理,在这种情况下,这会试图将一个圆推过一个方孔:只需使用规范的 MSBuild 方式,使用众所周知的内置功能。
-
@stijn 好的。我该怎么做?
标签: windows visual-studio visual-studio-2013 msbuild parallel-builds