Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour générer plus rapidement plusieurs projets, vous pouvez utiliser MSBuild pour exécuter des builds en parallèle. Pour ce faire, utilisez les paramètres suivants sur plusieurs ordinateurs processeurs ou multicœurs :
Définissez l'option
-maxcpucountlorsque vous exécutez MSBuild dans l'invite de commande.Définissez le paramètre BuildInParallel à
truedans votre tâche MSBuild.
Note
Vos performances de compilation peuvent diminuer si vous utilisez l'option -verbosity (-v) pour régler la granularité des informations du journal de build sur verbeux ou diagnostique. Ce commutateur est souvent utilisé pour la résolution des problèmes. Pour plus d’informations, consultez Obtenir les journaux de génération avec MSBuild et Référence de ligne de commande MSBuild.
-maxcpucount, un commutateur MSBuild
Si vous utilisez le -maxcpucount commutateur (-m), MSBuild crée le nombre spécifié de processus 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 cœur ou un processeur distinct, le cas échéant, pour générer un projet en même temps que d’autres processeurs disponibles peuvent créer d’autres projets.
Par exemple, définir ce commutateur sur une valeur de 4 entraîne MSBuild à créer quatre processus de travail pour générer le projet.
Si vous incluez le -maxcpucount commutateur sans spécifier de valeur, MSBuild utilise jusqu’au nombre de processeurs sur l’ordinateur.
Pour plus d’informations sur ce commutateur, consultez la référence de ligne de commande MSBuild.
L’exemple suivant indique à MSBuild d’utiliser trois processus de travail. Avec cette configuration, MSBuild peut générer trois projets en même temps.
msbuild.exe myproj.proj -maxcpucount:3
Paramètre de tâche BuildInParallel MSBuild
BuildInParallel est un paramètre booléen facultatif que vous pouvez définir sur votre tâche MSBuild. Lorsque vous définissez BuildInParalleltrue sur (valeur par défaut), plusieurs processus de travail sont générés pour générer autant de projets que possible. Pour que ce paramètre fonctionne correctement, définissez le -maxcpucount commutateur sur une valeur supérieure à une.
Lorsque vous utilisez MSBuild pour générer en parallèle, il ne fonctionne que pour un seul appel de la tâche MSBuild. Par conséquent, si vous appelez le traitement par lots de tâches, le parallélisme est limité à chaque lot. Pour plus d’informations, consultez traitement par lots MSBuild.
Les exemples suivants montrent comment générer une cible dans un fichier projet avec plusieurs valeurs de propriété différentes en parallèle à l’aide du BuildInParallel paramètre.
Dans cet exemple, le projet de fichier do_it.proj a une cible qui imprime un message différent pour chaque SourceValue.
<Project>
<Target Name="DoIt">
<Message Text="For this invocation SourceValue='$(SourceValue)'" Importance="High" />
</Target>
</Project>
Le projet suivant génère une cible spécifiée DoIt dans un projet nommé do_it.proj en parallèle, à l’aide de la liste d’éléments et des métadonnées AdditionalProperties pour spécifier différentes valeurs de la propriété SourceValue.
<Project>
<ItemGroup>
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test1" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test2" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test3" />
<_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test4" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(_Project)" Targets="DoIt" BuildInParallel="true" />
</Target>
</Project>