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>