Exec (tâche)

Exécute la commande ou le programme spécifié en utilisant les arguments spécifiés.

Paramètres

Le tableau ci-dessous décrit les paramètres de la tâche Exec.

Paramètre Description
Command Paramètre String requis.

Commande(s) à exécuter. Il peut s’agir de commandes système, par exemple attrib, ou d’un fichier exécutable, comme program.exe, runprogram.bat ou setup.msi.

Ce paramètre peut contenir plusieurs lignes de commandes. Vous pouvez également placer plusieurs commandes dans un fichier de commandes et l’exécuter à l’aide de ce paramètre.
ConsoleOutput Paramètre de sortie ITaskItem[] facultatif.

Chaque sortie d’élément est une ligne de la sortie standard ou du flux d’erreur standard émise par l’outil. Celle-ci est uniquement capturée si ConsoleToMsBuild a la valeur true.
ConsoleToMsBuild Paramètre Boolean facultatif.

Si la valeur est true, la tâche capture l’erreur standard et la sortie standard de l’outil pour les rendre disponibles dans le paramètre de sortie ConsoleOutput.

Par défaut : false.
CustomErrorRegularExpression Paramètre String facultatif.

Spécifie une expression régulière utilisée pour détecter les lignes d’erreur dans la sortie de l’outil. C’est utile pour les outils qui produisent une sortie à la mise en forme inhabituelle.

Par défaut : null (aucun traitement personnalisé).
CustomWarningRegularExpression Paramètre String facultatif.

Spécifie une expression régulière utilisée pour détecter les lignes d’avertissement dans la sortie de l’outil. C’est utile pour les outils qui produisent une sortie à la mise en forme inhabituelle.

Par défaut : null (aucun traitement personnalisé).
EchoOff Paramètre Boolean facultatif.

Si la valeur est true, la tâche n’émet pas la forme développée de Command dans le journal MSBuild.

Par défaut : false.
ExitCode Paramètre en lecture seule de sortie Int32 facultatif.

Spécifie le code de sortie fourni par la commande exécutée, sauf que si la tâche a enregistré des erreurs, mais que le code de sortie du processus était 0 (réussite), ExitCode est défini sur -1.
IgnoreExitCode Paramètre Boolean facultatif.

Si la valeur est true, la tâche ignore le code de sortie fourni par la commande exécutée. Sinon, la tâche retourne false si la commande exécutée retourne un code de sortie différent de zéro.

Par défaut : false.
IgnoreStandardErrorWarningFormat Paramètre Boolean facultatif.

Si la valeur est false, sélectionne des lignes dans la sortie qui correspondent au format d’erreur/avertissement standard, et les enregistre en tant qu’erreurs/avertissements. Si la valeur est true, désactiver ce comportement.

Par défaut : false.
Outputs Paramètre de sortie ITaskItem[] facultatif.

Contient les éléments de sortie de la tâche. La tâche Exec ne les définit pas elle-même. Au lieu de cela, vous pouvez les fournir comme si elle les définissait, pour qu’ils puissent être utilisés ultérieurement dans le projet.
StdErrEncoding Paramètre de sortie String facultatif.

Spécifie l’encodage du flux d’erreurs standard de tâche capturé. La valeur par défaut est l’encodage de sortie de la console actuelle.
StdOutEncoding Paramètre de sortie String facultatif.

Spécifie l’encodage du flux de sortie standard de tâche capturé. La valeur par défaut est l’encodage de sortie de la console actuelle.
UseUtf8Encoding Paramètre String facultatif.

Spécifie s’il faut utiliser la page de codes UTF8 lors du traitement de la ligne de commande pour les commandes exécutées. Les valeurs valides sont Always, Never ou Detect. La valeur par défaut est Detect, ce qui signifie utiliser la page de codes UTF8 uniquement lorsque des caractères non ANSI sont présents.
WorkingDirectory Paramètre String facultatif.

Spécifie le répertoire dans lequel la commande sera exécutée.

Par défaut : le répertoire de travail actif du projet.

Paramètres ToolTaskExtension

Cette tâche hérite de la classe ToolTaskExtension, laquelle hérite de la classe ToolTask, qui hérite elle-même de la classe Task. Cette chaîne d'héritage ajoute plusieurs paramètres aux tâches qui en dérivent.

Le tableau ci-dessous décrit les paramètres des classes de base :

Paramètre Description
EchoOff Paramètre bool facultatif.

Quand la valeur est true, cette tâche passe /Q à la ligne de commande cmd.exe de telle manière que cette dernière ne soit pas copiée dans stdout.
EnvironmentVariables Paramètres de tableau String facultatif.

Tableau de définitions de variables d’environnement, séparées par des points-virgules. Chaque définition devrait spécifier un nom et une valeur de variable d’environnement séparés par un signe égal. Ces variables sont transmises à l'exécutable généré en plus ou en remplacement sélectif du bloc environnement normal. Par exemple : Variable1=Value1;Variable2=Value2.
ExitCode Paramètre en lecture seule de sortie Int32 facultatif.

Spécifie le code de sortie fourni par la commande exécutée. Si la tâche a journalisé des erreurs, alors que le processus avait un code de sortie de 0 (réussite), ce paramètre prend la valeur -1.
LogStandardErrorAsError Paramètre bool facultatif.

Si la valeur est true, tous les messages reçus sur le flux d'erreur standard sont journalisés en tant qu'erreurs.
StandardErrorImportance Paramètre String facultatif.

Importance avec laquelle le texte doit être enregistré dans le flux d’erreur standard.
StandardOutputImportance Paramètre String facultatif.

Importance avec laquelle le texte doit être enregistré dans le flux de sortie standard.
Timeout Paramètre Int32 facultatif.

Spécifie le délai, en millisecondes, après lequel l’exécutable de la tâche est arrêté. La valeur par défaut est Int.MaxValue, ce qui indique qu’il n’existe aucun délai d’expiration. Délai d’expiration en millisecondes.
ToolExe Paramètre string facultatif.

Les projets peuvent l'implémenter pour remplacer un ToolName. Les tâches peuvent le remplacer pour préserver le ToolName.
ToolPath Paramètre string facultatif.

Spécifie l’emplacement à partir duquel la tâche charge le fichier exécutable sous-jacent. Si ce paramètre n'est pas spécifié, la tâche utilise le chemin d'installation du SDK qui correspond à la version de l'infrastructure qui exécute MSBuild.
UseCommandProcessor Paramètre bool facultatif.

Quand la valeur est true, cette tâche crée un fichier de commandes pour la ligne de commande et l'exécute à l'aide de l'interpréteur de commandes au lieu d'exécuter la commande directement.
YieldDuringToolExecution Paramètre bool facultatif.

Quand la valeur est true, cette tâche donne le nœud quand sa tâche s'exécute.

Notes

Cette tâche est utile quand une tâche MSBuild spécifique pour le travail que vous voulez effectuer n’est pas disponible. Toutefois, la tâche Exec, contrairement à une tâche plus spécifique, ne peut pas effectuer de traitement ou d’opérations conditionnelles supplémentaires en fonction du résultat de l’outil ou de la commande exécutée.

Au lieu d’appeler directement un processus, la Exec tâche appelle cmd.exe sur Windows, sinon sh .

Les paramètres IgnoreExitCode et IgnoreStandardErrorWarningFormat affectent les conditions dans lesquelles la tâche retourne false, indiquant une erreur. Avec les paramètres par défaut (false pour les deux), la tâche Exec indique un échec (retourne false) si l’exécutable a un code de sortie différent de zéro, ou si un message de diagnostic est trouvé dans le flux d’erreur standard de l’exécutable. Si vous souhaitez que Exec indique uniquement l’échec si l’exécutable retourne un code de sortie différent de zéro, définissez IgnoreStandardErrorWarningFormat sur true.

Exemple

L’exemple suivant utilise la tâche Exec pour exécuter une commande.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Binaries Include="*.dll;*.exe"/>
    </ItemGroup>

    <Target Name="SetACL">
        <!-- set security on binaries-->
        <Exec Command="echo y| cacls %(Binaries.Identity) /G everyone:R"/>
    </Target>
</Project>

Voir aussi