2
빌드 과정에서 여러 exec
개의 작업을 일괄 처리합니다. 각 실행은 완료하는 데 약 1 분이 걸리기 때문에 전체 빌드 성능을 향상시키기 위해 이들을 병렬로 실행하고 싶습니다. 여러에게 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
작업을 실행합니까?
[대상을 병렬로 실행할 수 있습니다.] (http://mikefourie.wordpress.com/2012/02/29/executing-msbuild-targets-in-parallel-part-1/). 내가 어떻게 든 혼란스럽지 않으면! – davenewza
@davenewza 일종의, 스크린 샷을 보면 3 가지 빌드 요약이 있습니다. 3 개의 평행 한 목표를 가진 프로젝트를 구축하는 것이 아니라 각각 하나의 목표와 병렬로 프로젝트를 세 번 구축했다고 말하는 것이 더 정확할 것이라고 생각합니다. 이는 첫 번째 옵션에서 의미했던 것입니다. TPL과 커스텀 작업으로 두 번째 작업을 수행하십시오. –
@davenewza, 기술적으로 MSBuild는 프로젝트 수준에서만 병렬화됩니다 * only *. Extension Pack의 트릭은'msbuild MyProject.proj/t : OneOfMyTargets'를 호출하는 것과 비슷한 MSBuild.exe의 여러 인스턴스를 병렬로 실행한다는 것입니다. 이것은 MSBuild에서 기본적으로 지원되는 병렬화와 유사하지만 그렇지 않습니다. 그 이유는 타겟의 사전 요구 사항이 여러 번 실행되어 MSBuild 모델을 깨 버리기 때문입니다. MSBuild (프로젝트 수준에서)는 대상이 최대 한 번만 실행되도록합니다. 확장 팩에서 해당 기능을 사용하지 않는 것이 좋습니다. –