Exec (tarea)
Ejecuta el programa o comando especificado mediante los argumentos especificados.
Parámetros
En la tabla siguiente se describen los parámetros de la tarea Exec
.
Parámetro | Descripción |
---|---|
Command |
Parámetro String requerido.Comandos que se van a ejecutar. Pueden ser comandos del sistema, como attrib, o un ejecutable, como program.exe, runprogram.bat o setup.msi. Este parámetro puede contener varias líneas de comandos. Alternativamente, puede colocar varios comandos en un archivo por lotes y ejecutarlo utilizando este parámetro. |
ConsoleOutput |
Parámetro de salida ITaskItem[] opcional.La salida de cada elemento es una línea de la salida estándar o de la secuencia de errores estándar que emite la herramienta. Solo se captura si ConsoleToMsBuild está establecido en true . |
ConsoleToMsBuild |
Parámetro Boolean opcional.Si se establece en true , la tarea capturará el error estándar y la salida estándar de la herramienta y hará que estén disponibles en el parámetro de salida ConsoleOutput .Predeterminado: false . |
CustomErrorRegularExpression |
Parámetro String opcional.Especifica una expresión regular que se utiliza para identificar líneas de error en los resultados de la herramienta. Esto resulta útil para las herramientas que generan resultados con un formato poco común. A menos que IgnoreStandardErrorWarningFormat se especifique, esta expresión regular se suma a las estándar.Predeterminado: null (sin procesamiento personalizado). |
CustomWarningRegularExpression |
Parámetro String opcional.Especifica una expresión regular que se utiliza para identificar líneas de advertencia en los resultados de la herramienta. Esto resulta útil para las herramientas que generan resultados con un formato poco común. A menos que IgnoreStandardErrorWarningFormat se especifique, esta expresión regular se suma a las estándar.Predeterminado: null (sin procesamiento personalizado). |
EchoOff |
Parámetro Boolean opcional.Si se establece en true , la tarea no emitirá el formulario expandido de Command al registro de MSBuild.Predeterminado: false . |
ExitCode |
Parámetro de solo lectura de salida Int32 opcional.Especifica el código de salida proporcionado por el comando ejecutado, salvo que, si la tarea registra algún error, pero el proceso tenía un código de salida de 0 (correcto), ExitCode se establece en-1. |
IgnoreExitCode |
Parámetro Boolean opcional.Si es true , la tarea omite el código de salida proporcionado por el comando ejecutado. De lo contrario, la tarea devuelve false si el comando ejecutado devuelve un código de salida distinto de cero.Predeterminado: false . |
IgnoreStandardErrorWarningFormat |
Parámetro Boolean opcional.Si false es , selecciona las líneas de la salida que coinciden con el formato estándar de error o advertencia y los registra como errores o advertencias. Si es true , se deshabilita este comportamiento.Predeterminado: false . |
Outputs |
Parámetro de salida ITaskItem[] opcional.Contiene los elementos de salida de la tarea. La tarea Exec no los establece por sí misma. En cambio, puede proporcionarlos como si los estableciera, para que se puedan utilizar después en el proyecto. |
StdErrEncoding |
Parámetro de salida String opcional.Especifica la codificación del flujo de error estándar de la tarea capturada. El valor predeterminado es la codificación generada de la consola actual. |
StdOutEncoding |
Parámetro de salida String opcional.Especifica la codificación del flujo de salida estándar de la tarea capturada. El valor predeterminado es la codificación generada de la consola actual. |
UseUtf8Encoding |
Parámetro String opcional.Especifica si se debe usar la página de códigos UTF8 al procesar la línea de comandos de los comandos ejecutados. Los valores válidos son Always , Never o Detect . El valor predeterminado es Detect , lo que significa que solo se usa la página de códigos UTF8 cuando hay caracteres que no son ANSI. |
WorkingDirectory |
Parámetro String opcional.Especifica el directorio en el que se ejecutará el comando. Predeterminado: Directorio de trabajo actual del proyecto. |
Parámetros de ToolTaskExtension
Esta tarea hereda de la clase ToolTaskExtension, que hereda de la clase ToolTask, la cual, a su vez, hereda de la clase Task. Esta cadena de herencia agrega varios parámetros a las tareas que derivan de ellos.
En la siguiente tabla se describen los parámetros de las clases base:
Parámetro | Descripción |
---|---|
EchoOff | Parámetro bool opcional.Cuando se establece en true , esta tarea pasa /Q a la línea de comandos cmd.exe de modo que la línea de comandos no se copia en stdout. |
EnvironmentVariables | Parámetro de matriz String opcional.Matriz de definiciones de variables de entorno, separadas por punto y coma. Cada definición debe especificar un valor y un nombre para la variable de entorno separados por un signo igual. Estas variables se pasan al ejecutable generado y, además, pasan el bloque de entorno normal o lo invalidan de manera selectiva. Por ejemplo, Variable1=Value1;Variable2=Value2 . |
ExitCode | Parámetro de solo lectura de salida Int32 opcional.Especifica el código de salida proporcionado por el comando ejecutado. Si la tarea registró errores pero el proceso tenía un código de salida de 0 (correcto), se establece en -1. |
LogStandardErrorAsError | Parámetro bool opcional.Si true , todos los mensajes recibidos en el flujo de error estándar se registran como errores. |
StandardErrorImportance | Parámetro String opcional.Importancia con la que se va a registrar el texto de la secuencia de error estándar. |
StandardOutputImportance | Parámetro String opcional.Importancia con la que se va a registrar el texto de la secuencia de salida estándar. |
Timeout | Parámetro Int32 opcional.Especifica el tiempo en milisegundos después del cual se termina la tarea ejecutable. El valor predeterminado es Int.MaxValue , que indica que no hay período de tiempo de espera. Tiempo de espera en milisegundos. |
ToolExe | Parámetro string opcional.Los proyectos pueden implementarlo para invalidar ToolName. Las tareas pueden invalidarlo para conservar ToolName. |
ToolPath | Parámetro string opcional.Especifica la ubicación desde donde la tarea carga el archivo ejecutable subyacente. Si no se especifica este parámetro, la tarea usa la ruta de instalación del SDK que se corresponde con la versión del marco de trabajo que está ejecutando MSBuild. |
UseCommandProcessor | Parámetro bool opcional.Cuando se establece en true , esta tarea crea un archivo por lotes para la línea de comandos y lo ejecuta mediante el procesador de comandos, en lugar de ejecutar el comando directamente. |
YieldDuringToolExecution | Parámetro bool opcional.Cuando se establece en true , esta tarea produce el nodo cuando se ejecuta la tarea. |
Comentarios
Esta tarea es útil cuando una tarea de MSBuild específica para el trabajo que desea realizar no está disponible. Sin embargo, la tarea Exec
, a diferencia de una tarea más específica, no puede realizar un procesamiento adicional ni operaciones condicionales en función del resultado de la herramienta o el comando que se ejecuta.
En lugar de invocar directamente un proceso, la tarea Exec
llama a acmd.exe en Windows o a sh en caso contrario.
Los parámetros IgnoreExitCode
e IgnoreStandardErrorWarningFormat
afectan a las condiciones en las que la tarea devuelve false
, lo que indica un error. Con la configuración predeterminada (false
para ambos), la tarea Exec
indica un error (devuelve false
) si el ejecutable tiene un código de salida distinto de cero o si se encuentra un mensaje de diagnóstico en la secuencia de errores estándar del ejecutable. Si solo quiere que Exec
indique un error si el ejecutable devuelve un código de salida distinto de cero, establezca IgnoreStandardErrorWarningFormat
en true
.
Ejemplo
El ejemplo siguiente utiliza la tarea Exec
para ejecutar un comando.
<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>