Condividi tramite


Exec (attività)

Esegue il programma o il comando specificato con gli argomenti specificati.

Parametri

La tabella seguente descrive i parametri dell'attività Exec.

Parametro Descrizione
Command Parametro String obbligatorio.

Uno o più comandi da eseguire. Possono essere comandi di sistema, ad esempio attrib, o file eseguibili, ad esempio program.exe, runprogram.bat o setup.msi.

Questo parametro può contenere più righe di comandi. In alternativa, è possibile includere più comandi in un file batch ed eseguirlo tramite questo parametro.
ConsoleOutput Parametro di output ITaskItem[] facoltativo.

Ogni output di elemento è una riga del flusso di output standard o di errore standard generato dallo strumento. Viene acquisito solo se ConsoleToMsBuild è impostato su true.
ConsoleToMsBuild Parametro Boolean facoltativo.

Se true, l'attività acquisisce l'errore standard e l'output standard dello strumento e li rende disponibili nel parametro di output ConsoleOutput.

Impostazione predefinita: false.
CustomErrorRegularExpression Parametro String facoltativo.

Specifica un'espressione regolare usata per individuare eventuali righe di errore nell'output dello strumento. È particolarmente utile per gli strumenti che consentono la generazione di output con formattazione insolita.

A meno che non IgnoreStandardErrorWarningFormat venga specificato, questa espressione regolare è oltre a quella standard.

Valore predefinito: null (nessuna elaborazione personalizzata).
CustomWarningRegularExpression Parametro String facoltativo.

Specifica un'espressione regolare usata per individuare eventuali righe di avviso nell'output dello strumento. È particolarmente utile per gli strumenti che consentono la generazione di output con formattazione insolita.

A meno che non IgnoreStandardErrorWarningFormat venga specificato, questa espressione regolare è oltre a quella standard.

Valore predefinito: null (nessuna elaborazione personalizzata).
EchoOff Parametro Boolean facoltativo.

Se true, l'attività non genererà la forma espansa di Command nel log di MSBuild.

Impostazione predefinita: false.
ExitCode Parametro di sola lettura di output Int32 facoltativo.

Specifica il codice di uscita fornito dal comando eseguito, ad eccezione del fatto che se l'attività ha registrato errori, ma il processo ha un codice di uscita pari a 0 (operazione riuscita), ExitCode è impostato su -1.
IgnoreExitCode Parametro Boolean facoltativo.

Se true, il codice di uscita fornito dal comando eseguito viene ignorato. In caso contrario, viene restituito false se il comando eseguito restituisce un codice di uscita diverso da zero.

Impostazione predefinita: false.
IgnoreStandardErrorWarningFormat Parametro Boolean facoltativo.

Se false, seleziona le righe nell'output che corrispondono al formato di errore/avviso standard e le registra come errori/avvisi. Se true, disabilitare questo comportamento.

Impostazione predefinita: false.
Outputs Parametro di output ITaskItem[] facoltativo.

Contiene gli elementi di output dell'attività. L'attività Exec non imposta questi elementi autonomamente, ma è possibile fornirli come se fossero stati impostati dall'attività, in modo che possano essere usati in una fase successiva del progetto.
StdErrEncoding Parametro di output String facoltativo.

Specifica la codifica del flusso di errore standard dell'attività acquisito. Il valore predefinito è la codifica dell'output della console corrente.
StdOutEncoding Parametro di output String facoltativo.

Specifica la codifica del flusso di output standard dell'attività acquisito. Il valore predefinito è la codifica dell'output della console corrente.
UseUtf8Encoding Parametro String facoltativo.

Specifica se utilizzare la tabella codici UTF8 durante l'elaborazione della riga di comando per i comandi eseguiti. I valori validi sono Always, Never o Detect. Il valore predefinito è Detect, ovvero usare la tabella codici UTF8 solo quando sono presenti caratteri non ANSI.
WorkingDirectory Parametro String facoltativo.

Specifica la directory in cui verrà eseguito il comando.

Valore predefinito: directory di lavoro corrente del progetto.

Parametri ToolTaskExtension

Questa attività eredita dalla ToolTaskExtension classe , che eredita dalla ToolTask classe , che a sua volta eredita dalla Task classe . Questa catena di ereditarietà aggiunge diversi parametri alle attività che ne derivano.

Nella tabella seguente vengono descritti i parametri delle classi di base:

Parametro Descrizione
EchoOff Parametro bool facoltativo.

Se impostata su true, questa attività passa /Q alla riga di comando di cmd.exe in modo che la riga di comando non venga copiata in stdout.
EnvironmentVariables Parametro di matrice String facoltativo.

Matrice di definizioni di variabili di ambiente, separate da punti e virgola. Ogni definizione deve specificare un nome di variabile di ambiente e un valore separati da un segno di uguale. Queste variabili vengono passate all'eseguibile generato in aggiunta a o con override selettivo del blocco di ambiente standard. Ad esempio: Variable1=Value1;Variable2=Value2.
ExitCode Parametro di sola lettura di output Int32 facoltativo.

Specifica il codice di uscita fornito dal comando eseguito. Se l'attività ha registrato errori, ma il processo ha un codice di uscita pari a 0 (esito positivo), il parametro viene impostato su -1.
LogStandardErrorAsError Parametro bool facoltativo.

Se true, tutti i messaggi ricevuti nel flusso di errori standard vengono registrati come errori.
StandardErrorImportance Parametro String facoltativo.

Importanza con cui registrare il testo dal flusso di errore standard.
StandardOutputImportance Parametro String facoltativo.

Importanza con cui registrare il testo dal flusso di output standard.
Timeout Parametro Int32 facoltativo.

Specifica la quantità di tempo, in millisecondi, dopo i quali l'eseguibile dell'attività viene terminato. Il valore predefinito è Int.MaxValue, con cui si indica che non esiste alcun periodo di timeout. Il timeout è espresso in millisecondi.
ToolExe Parametro string facoltativo.

I progetti possono implementarlo per eseguire l'override di un ToolName. Le attività possono eseguirne l'override per conservare il ToolName.
ToolPath Parametro string facoltativo.

Specifica la posizione da cui l'attività carica il file eseguibile sottostante. Se questo parametro non viene specificato, l'attività usa il percorso di installazione dell'SDK corrispondente alla versione del framework che esegue MSBuild.
UseCommandProcessor Parametro bool facoltativo.

Se true, questa attività crea un file batch per la riga di comando e lo esegue mediante il processore dei comandi anziché eseguire direttamente il comando.
YieldDuringToolExecution Parametro bool facoltativo.

Se true, questa attività restituisce il nodo quando l'attività è in esecuzione.

Osservazioni:

Questa attività è utile quando non è disponibile un'attività MSBuild specifica per il processo da eseguire. Tuttavia, l'attività Exec, a differenza di un'attività più specifica, non può eseguire un'altra elaborazione o operazioni condizionali in base al risultato dello strumento o del comando eseguito.

Anziché richiamare direttamente un processo, l'attività Exec chiama cmd.exe in Windows o in caso contrario.

I parametri IgnoreExitCode e IgnoreStandardErrorWarningFormat influiscono sulle condizioni in cui l'attività restituisce false, che indica un errore. Con le impostazioni predefinite (false per entrambe), l'attività Exec indica un errore (restituisce false) se l'eseguibile ha un codice di uscita diverso da zero o se viene trovato un messaggio di diagnostica nel flusso di errori standard dell'eseguibile. Se si vuole Exec indicare l'errore solo se l'eseguibile restituisce un codice di uscita diverso da zero, impostare su IgnoreStandardErrorWarningFormat true.

Esempio

Nell'esempio seguente l'attività Exec viene usata per eseguire 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>

Vedi anche