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. IgnoreStandardErrorWarningFormat Sauf indication contraire, cette expression régulière est en plus des expressions standard.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. IgnoreStandardErrorWarningFormat Sauf indication contraire, cette expression régulière est en plus des expressions standard.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 false , sélectionne des lignes dans la sortie qui correspondent au format d’erreur/d’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>