我正在exec
构建过程中批处理多个任务。每次执行大约需要一分钟才能完成,因此我想并行运行它们以提高整体构建性能。
运行多个exec
任务的目标:
<Target Name="CreatePackages" DependsOnTargets="Build" AfterTargets="Build">
<Exec Command="SomeExecutable.exe %(SomeGroup.Location) </Exec>
</Target>
该ItemGroup
定义:
<ItemGroup>
<SomeGroup Include="Production">
<Location>SomePath/Production</Location>
</SomeGroup>
<SomeGroup Include="Test">
<Location>SomePath/Test</Location>
</SomeGroup>
<SomeGroup Include="Development">
<Location>SomePath/Development</Location>
</SomeGroup>
</ItemGroup>
如何exec
并行运行这些任务?
MSBuild不在任务或目标级别并行化,而仅在项目级别并行化。您可以选择将每个单独的位置包装在目标中,并并行(混乱)调用项目本身,或者使用TPL(System.Threading.Tasks.Parallel
)和(Microsoft.Build.Tasks.Exec
或)System.Diagnostics.Process
(easy)编写自定义任务,或者尝试YieldDuringToolExecution(从技术上讲不是并行化,但是其他任务会等待)减)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句