다음을 통해 공유


MSBuild를 사용하여 병렬로 여러 프로젝트 빌드

병렬로 실행 하 여 빠른 여러 개의 프로젝트를 빌드하려면 Msbuild를 사용할 수 있습니다.병렬 빌드를 실행 하는 멀티 코어 또는 다중 프로세서 컴퓨터에서 다음 설정을 사용:

  • /maxcpucount 명령 프롬프트를 전환 합니다.

  • BuildInParallel 은 MSBuild 작업에 작업 매개 변수입니다.

[!참고]

/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>

참고 항목

개념

다중 프로세서를 사용하여 프로젝트 빌드

다중 프로세서 인식 로거 작성

기타 리소스

C + + 병렬 빌드 블로그 튜닝