[英]Running multiple exec tasks in parallel
我正在構建過程中批處理多個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
編寫自定義任務System.Diagnostics.Process
(簡單),或嘗試使用YieldDuringToolExecution (從技術上講不是並行化,但是其他任務等待的時間會更少)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.