簡體   English   中英

並行運行多個執行任務

[英]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.ExecSystem.Diagnostics.Process編寫自定義任務System.Diagnostics.Process (簡單),或嘗試使用YieldDuringToolExecution (從技術上講不是並行化,但是其他任務等待的時間會更少)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM