tarefa Exec

Executa o programa ou comando especificado pelo uso dos argumentos especificados.

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa Exec.

Parâmetro Descrição
Command Parâmetro String obrigatório.

Os comandos a executar. Eles podem ser comandos do sistema, como attrib, ou um executável, como program.exe, runprogram.bat ou setup.msi.

Esse parâmetro pode conter várias linhas de comandos. Como alternativa, você pode colocar vários comandos em um arquivo em lotes e executá-lo por meio desse parâmetro.
ConsoleOutput Parâmetro de saída ITaskItem[] opcional.

Cada item de saída é uma linha do fluxo de saída padrão ou de erro padrão emitido pela ferramenta. Isso será capturado somente se ConsoleToMsBuild for definido como true.
ConsoleToMsBuild Parâmetro Boolean opcional.

Se true, a tarefa vai capturar o erro padrão e a saída padrão da ferramenta e disponibilizá-los no parâmetro de saída ConsoleOutput.

Padrão: false.
CustomErrorRegularExpression Parâmetro String opcional.

Especifica uma expressão regular que é usada para identificar linhas de erro na saída da ferramenta. Isso é útil para ferramentas que produzem saída com formação incomum.

Padrão: null (nenhum processamento personalizado).
CustomWarningRegularExpression Parâmetro String opcional.

Especifica uma expressão regular que é usada para identificar linhas de aviso na saída da ferramenta. Isso é útil para ferramentas que produzem saída com formação incomum.

Padrão: null (nenhum processamento personalizado).
EchoOff Parâmetro Boolean opcional.

Se true, a tarefa não emitirá a forma expandida do Command no log do MSBuild.

Padrão: false.
ExitCode Parâmetro de saída opcional somente leitura Int32.

Especifica o código de saída fornecido pelo comando executado, exceto se a tarefa registrar erros, mas o processo tiver um código de saída 0 (êxito), então ExitCode será definido como -1.
IgnoreExitCode Parâmetro Boolean opcional.

Se true, a tarefa ignora o código de saída fornecido pelo comando executado. Caso contrário, a tarefa retorna false se o comando executado retorna um código de saída diferente de zero.

Padrão: false.
IgnoreStandardErrorWarningFormat Parâmetro Boolean opcional.

Se false, seleciona linhas na saída que correspondem ao formato de aviso/erro padrão e registra-as em log como erros e avisos. Se true, desabilite esse comportamento.

Padrão: false.
Outputs Parâmetro de saída ITaskItem[] opcional.

Contém os itens de saída da tarefa. A tarefa Exec não define esses itens. Em vez disso, você pode fornecê-los como se ela os tivesse definido, para que eles podem ser usados posteriormente no projeto.
StdErrEncoding Parâmetro de saída String opcional.

Especifica a codificação do fluxo de erro padrão de tarefa capturada. O padrão é a codificação de saída do console atual.
StdOutEncoding Parâmetro de saída String opcional.

Especifica a codificação do fluxo de saída padrão de tarefa capturada. O padrão é a codificação de saída do console atual.
UseUtf8Encoding Parâmetro String opcional.

Especifica se a página de código UTF8 deve ser usada ao processar a linha de comando para comandos executados. Os valores válidos são Always, Never ou Detect. O padrão é Detect, o que significa usar a página de código UTF8 somente quando caracteres não ANSI estiverem presentes.
WorkingDirectory Parâmetro String opcional.

Especifica o diretório no qual o comando será executado.

Padrão: o diretório de trabalho atual do projeto.

Parâmetros de ToolTaskExtension

Essa tarefa herda da classe ToolTaskExtension, que herda da classe ToolTask, que por sua vez herda da classe Task. Esta cadeia de herança adiciona vários parâmetros nas tarefas que derivam deles.

A seguinte tabela descreve os parâmetros das classes base:

Parâmetro Descrição
EchoOff Parâmetro bool opcional.

Quando definido como true, essa tarefa passa /Q para a linha de comando de cmd.exe, de modo que a linha de comando não é copiada para stdout.
EnvironmentVariables Parâmetro de matriz String opcional.

Matriz de definições da variável de ambiente, separadas por ponto e vírgula. Cada definição deve especificar um nome da variável de ambiente e um valor separados por um sinal de igual. Essas variáveis são passadas para o executável gerado além, ou seletivamente substituindo, o bloco de ambiente regular. Por exemplo, Variable1=Value1;Variable2=Value2.
ExitCode Parâmetro de saída opcional somente leitura Int32.

Especifica o código de saída fornecido pelo comando executado. Se a tarefa registra erros, mas o processo tem um código de saída de 0 (êxito), isso é definido como -1.
LogStandardErrorAsError Parâmetro bool opcional.

Se true, todas as mensagens recebidas no fluxo de erro padrão são registradas como erros.
StandardErrorImportance Parâmetro String opcional.

a importância com a qual o texto do fluxo de erro padrão deve ser registrado.
StandardOutputImportance Parâmetro String opcional.

Importância para fazer o texto de log do fluxo de saída do padrão.
Timeout Parâmetro Int32 opcional.

Especifica a quantidade de tempo em milissegundos após o qual o executável da tarefa é encerrado. O valor padrão é Int.MaxValue, indicando que não há período de tempo limite. O tempo limite está em milissegundos.
ToolExe Parâmetro string opcional.

Projetos podem implementar para substituir um ToolName. Tarefas podem substituir isso para preservar o ToolName.
ToolPath Parâmetro string opcional.

Especifica o local de onde a tarefa carrega o arquivo executável subjacente. Se esse parâmetro não for especificado, a tarefa usará o caminho de instalação do SDK correspondente à versão da estrutura que está executando o MSBuild.
UseCommandProcessor Parâmetro bool opcional.

Quando definido como true, essa tarefa cria um arquivo em lotes para a linha de comando e o executa usando o processador de comando em vez de executar o comando diretamente.
YieldDuringToolExecution Parâmetro bool opcional.

Quando definido como true, essa tarefa gera o nó quando a tarefa está em execução.

Comentários

Essa tarefa é útil quando uma tarefa do MSBuild específica do trabalho que você deseja executar não está disponível. Entretanto, a tarefa Exec, diferente de tarefas mais específicas, não pode realizar operações adicionais de processamento ou condicionais com base no resultado da ferramenta ou do comando executado.

Em vez de invocar diretamente um processo, a tarefa Exec chama cmd.exe no Windows ou, caso contrário, sh.

Os parâmetros IgnoreExitCode e IgnoreStandardErrorWarningFormat afetam as condições sob as quais a tarefa retorna false, indicando um erro. Com as configurações padrão (false para ambos), a tarefa Exec indica uma falha (retorna false) se o executável tiver um código de saída diferente de zero ou se uma mensagem de diagnóstico for encontrada no fluxo de erro padrão do executável. Se você quiser que Exec apenas indique falha se o executável retornar um código de saída diferente de zero, defina IgnoreStandardErrorWarningFormat como true.

Exemplo

O exemplo a seguir usa a tarefa Exec para executar um 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>

Confira também