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 falsees , 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>

Vea también