使用 MSBuild 同時建置多個專案
您可以使用 MSBuild 來平行執行這些快速地建立多個專案。 要平行執行組建,您會使用多核心或多處理器電腦的下列設定:
在命令提示字元中的 /maxcpucount 參數。
在 MSBuild 工作的 BuildInParallel 工作參數。
注意事項 |
---|
在命令列的 /verbosity (/v) 參數也會影響到建置效能。建置效能可能會降低,如果組建記錄資訊詳細等級設定為詳細或診斷,針對疑難排解使用。如需詳細資訊,請參閱使用 MSBuild 取得建置記錄與MSBuild 命令列參考。 |
/maxcpucount 參數
如果您使用簡寫為 /maxcpucount 參數或 /m , MSBuild 可建立的 MSBuild.exe 處理序的指定數目的同時執行。這些處理序也稱為背景工作處理序」。每個背景工作處理序都會使用不同的核心或處理器 (如可用) 來建置專案,而同時可能也有其他可用的處理器正在建置其他專案。 例如,將設定為值的這個參數為「4 "會使 MSBuild 建立四個背景工作處理序建立專案。
如果包含 /maxcpucount 參數,但未指定值, MSBuild 會使用由處理器決定數目的電腦上。
如需這個參數的詳細資訊,請在 MSBuild 3.5 中的簡介,請參閱 MSBuild 命令列參考。
下列範例會使用 MSBuild 三個背景工作處理序。 如果您使用此組態, MSBuild 可以同時建立三個專案。
C:\WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj /maxcpucount:3
BuildInParallel 工作參數
BuildInParallel 是 MSBuild 工作上的選擇性布林值參數。 BuildInParallel 設為 true (預設值) 時,就會產生多個背景工作處理序,以同時建置任何數目的專案。 為使 /maxcpucount 參數正確運作,其值必須設為大於 1,且系統必須至少是雙核心或有兩個以上的處理器。
以下是取自於 microsoft.common.targets 的範例,示範如何設定 BuildInParallel 參數。
<PropertyGroup>
<BuildInParallel Condition="'$(BuildInParallel)' ==
''">true</BuildInParallel>
</PropertyGroup>
<MSBuild
Projects="@(_MSBuildProjectReferenceExistent)"
Targets="GetTargetPath"
BuildInParallel="$(BuildInParallel)"
Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration);
%(_MSBuildProjectReferenceExistent.SetPlatform)"
Condition="'@(NonVCProjectReference)'!='' and
('$(BuildingSolutionFile)' == 'true' or
'$(BuildingInsideVisualStudio)' == 'true' or
'$(BuildProjectReferences)' != 'true') and
'@(_MSBuildProjectReferenceExistent)' != ''"
ContinueOnError="!$(BuildingProject)">
<Output TaskParameter="TargetOutputs"
ItemName="_ResolvedProjectReferencePaths"/>
</MSBuild>