Partager via


Génération parallèle de plusieurs projets avec MSBuild

Vous pouvez utiliser MSBuild pour générer plusieurs projets plus rapidement en les exécutant en parallèle.Pour exécuter des builds en parallèle, vous utilisez les paramètres suivants sur un ordinateur multicœur ou plusieurs de processeur :

  • Le commutateur d' /maxcpucount à une invite de commandes.

  • Le paramètre de tâche d' BuildInParallel sur une tâche MSBuild.

[!REMARQUE]

Le commutateur d' /verbosity (/v) dans une ligne de commande peut également affecter les performances de génération.Vos performances de génération peut diminuer si les commentaires des informations de journal de génération sont définies à détaillés ou de diagnostic, qui sont utilisés pour résoudre.Pour plus d'informations, consultez Obtention de journaux de génération avec MSBuild et Référence de la ligne de commande MSBuild.

Commutateur /maxcpucount

Si vous utilisez le commutateur d' /maxcpucount, ou /m en abrégé, MSBuild peut créer le nombre spécifié de processus de MSBuild.exe qui peuvent être exécutés en parallèle. Ces processus sont également appelés « processus de travail. » Chaque processus de travail utilise un processeur distinct si disponible pour générer un projet pendant que d'autres processeurs disponibles génèrent d'autres projets.Par exemple, la définition de ce commutateur à une valeur « 4 " pour créer MSBuild quatre processus de travail pour générer le projet.

Si vous incluez le commutateur d' /maxcpucount sans spécifier de valeur, MSBuild utilisera jusqu'au nombre de processeurs sur l'ordinateur.

Pour plus d'informations sur ce commutateur, qui a été introduit dans MSBuild 3,5, consultez Référence de la ligne de commande MSBuild.

L'exemple suivant indique à MSBuild d'utiliser trois processus de travail.Si vous utilisez ce paramètre, MSBuild peut générer trois projets.

C:\WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj /maxcpucount:3

Paramètre de tâche BuildInParallel

BuildInParallel est un paramètre booléen facultatif dans une tâche MSBuild.Lorsque BuildInParallel a la valeur true (sa valeur par défaut), plusieurs processus de travail sont générés pour créer simultanément autant de projets que possible.Pour lui permettre de fonctionner correctement, le commutateur /maxcpucount doit avoir une valeur supérieure à 1 et le système doit être de type dual-core ou avoir au moins deux processeurs.

Les éléments suivants sont un exemple tiré de microsoft.common.targets pour la définition du paramètre 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>

Voir aussi

Concepts

Utilisation de plusieurs processeurs pour générer des projets

Écriture de journaux prenant en charge plusieurs processeurs

Autres ressources

Blog de parallélisme de génération du paramétrage C++