Exec-Aufgabe
Führt das angegebene Programm oder den Befehl mit den angegebenen Argumenten aus.
Parameter
In der folgenden Tabelle werden die Parameter für die Exec
-Aufgabe beschrieben.
Parameter | Beschreibung |
---|---|
Command |
Erforderlicher String -Parameter.Der/die auszuführende(n) Befehl(e). Dies kann ein Systembefehl sein, z.B. „attrib“, oder eine ausführbare Datei wie program.exe, runprogram.bat oder setup.msi. Dieser Parameter kann mehrere Zeilen mit Befehlen enthalten. Alternativ können Sie mehrere Befehle in einer Batchdatei speichern und sie ausführen, indem Sie diesen Parameter verwenden. |
ConsoleOutput |
Optionaler ITaskItem[] -Ausgabeparameter.Jede Elementausgabe stellt eine Zeile der Standardausgabe oder einen Standardfehlerstream dar, der vom Tool ausgegeben wird. Dies wird nur erfasst, wenn ConsoleToMsBuild auf true festgelegt ist. |
ConsoleToMsBuild |
Optionaler Boolean -Parameter.Wenn true , erfasst der Task den Standardfehler und die Standardausgabe des Tools und macht sie im Ausgabeparameter ConsoleOutput verfügbar.Standardwert: false . |
CustomErrorRegularExpression |
Optionaler String -Parameter.Legt einen regulären Ausdruck fest, der verwendet wird, um Fehlerzeilen in der Ausgabe des Tools zu erkennen. Dies ist nützlich für Tools, die eine außergewöhnlich formatierte Ausgabe erzeugen. Sofern nicht IgnoreStandardErrorWarningFormat angegeben, ist dieser reguläre Ausdruck zusätzlich zu den Standardausdrücken enthalten.Standardwert: null (keine benutzerdefinierte Verarbeitung). |
CustomWarningRegularExpression |
Optionaler String -Parameter.Legt einen regulären Ausdruck fest, der verwendet wird, um Warnungszeilen in der Ausgabe des Tools zu erkennen. Dies ist nützlich für Tools, die eine außergewöhnlich formatierte Ausgabe erzeugen. Sofern nicht IgnoreStandardErrorWarningFormat angegeben, ist dieser reguläre Ausdruck zusätzlich zu den Standardausdrücken enthalten.Standardwert: null (keine benutzerdefinierte Verarbeitung). |
EchoOff |
Optionaler Boolean -Parameter.Wenn true , gibt der Task nicht die erweiterte Form von Command an das MSBuild-Protokoll aus.Standardwert: false . |
ExitCode |
Optionaler schreibgeschützter Int32 -Ausgabeparameter.Gibt den Exitcode an, der vom ausgeführten Befehl bereitgestellt wird, mit der Ausnahme, dass, wenn der Task Fehler protokolliert hat, der Prozess aber einen Exitcode von 0 (Erfolg) hatte. ExitCode wird auf -1 festgelegt. |
IgnoreExitCode |
Optionaler Boolean -Parameter.Wenn true , ignoriert die Aufgabe den durch den ausgeführten Befehl bereitgestellten Exitcode. Andernfalls gibt die Aufgabe false zurück, wenn der ausgeführte Befehl einen Exitcode ungleich null (0) zurückgibt.Standardwert: false . |
IgnoreStandardErrorWarningFormat |
Optionaler Boolean -Parameter.Wenn false , markiert Zeilen in der Ausgabe, die dem Standardfehler-/Warnformat entsprechen, und protokolliert sie als Fehler/Warnungen. Wenn true , wird dieses Verhalten deaktiviert.Standardwert: false . |
Outputs |
Optionaler ITaskItem[] -Ausgabeparameter.Enthält die Ausgabeelemente aus der Aufgabe. Die Exec -Aufgabe legt diese nicht selbst fest. Stattdessen können Sie sie so bereitstellen, als ob die Aufgabe sie festgelegt hätte, damit sie später im Projekt verwendet werden können. |
StdErrEncoding |
Optionaler String -Ausgabeparameter.Gibt die Codierung des standardmäßigen Fehlerdatenstroms der erfassten Aufgabe an. Der Standardwert ist die aktuelle Konsolenausgabencodierung. |
StdOutEncoding |
Optionaler String -Ausgabeparameter.Gibt die Codierung des standardmäßigen Ausgabedatenstroms der erfassten Aufgabe an. Der Standardwert ist die aktuelle Konsolenausgabencodierung. |
UseUtf8Encoding |
Optionaler String -Parameter.Gibt an, ob die UTF8-Codepage bei der Verarbeitung der Befehlszeile für ausgeführte Befehle verwendet werden soll. Gültige Werte sind Always , Never oder Detect . Der Standardwert ist Detect . Dies bedeutet, dass die UTF8-Codepage nur verwendet wird, wenn nicht-ANSI-Zeichen vorhanden sind. |
WorkingDirectory |
Optionaler String -Parameter.Gibt das Verzeichnis an, in dem der Befehl ausgeführt wird. Standard: Das aktuelle Arbeitsverzeichnis des Projekts. |
ToolTaskExtension-Parameter
Dieser Task erbt aus der ToolTaskExtension-Klasse, die aus der ToolTask-Klasse erbt, welche wiederum aus der Task-Klasse erbt. Diese Vererbungskette fügt verschiedene Parameter zu den Aufgaben hinzu, die aus ihnen abgeleitet werden.
In der folgenden Tabelle werden die Parameter der Basisklassen beschrieben:
Parameter | Beschreibung |
---|---|
EchoOff | Optionaler bool -Parameter.Bei der Festlegung auf true gibt diese Aufgabe /Q an die Befehlszeile cmd.exe so weiter, dass die Befehlszeile nicht zu „stdout“ kopiert wird. |
EnvironmentVariables | Optionaler String -Arrayparameter.Array aus Umgebungsvariablendefinitionen, getrennt durch Semikolons. Jede Definition sollte einen Namen und einen Wert für eine Umgebungsvariable angeben, getrennt durch ein Gleichheitszeichen. Diese Variablen werden an die erstellte ausführbare Datei zusätzlich zum regulären Umgebungsblock oder zum ausgewählten Überschreiben hinzugefügt. Beispiel: Variable1=Value1;Variable2=Value2 . |
ExitCode | Optionaler schreibgeschützter Int32 -Ausgabeparameter.Gibt den durch den ausgeführten Befehl bereitgestellten Exitcode an. Wenn bei der Aufgabe Fehler protokolliert wurden, der Prozess jedoch über einen Exitcode von „0“ (Erfolg) verfügt hat, wird dies auf „-1“ festgelegt. |
LogStandardErrorAsError | Optionaler bool -Parameter.Wenn true gegeben ist, werden alle im Standardfehlerstream empfangenen Meldungen als Fehler protokolliert. |
StandardErrorImportance | Optionaler String -Parameter.Wichtigkeit, mit der Text aus dem Standardfehlerstream protokolliert wird. |
StandardOutputImportance | Optionaler String -Parameter.Wichtigkeit, mit der Text aus dem Standardausgabestream protokolliert wird. |
Timeout | Optionaler Int32 -Parameter.Gibt die Zeitdauer in Millisekunden an, nach der die ausführbare Datei der Aufgabe beendet wird. Der Standardwert ist Int.MaxValue . Dieser gibt an, dass es kein Zeitlimit gibt. Das Timeout in Millisekunden. |
ToolExe | Optionaler string -Parameter.Projekte implementieren dies möglicherweise zum Überschreiben eines ToolName. Aufgaben überschreiben dies möglicherweise zum Beibehalten des ToolName. |
ToolPath | Optionaler string -Parameter.Gibt den Speicherort an, von wo aus die Aufgabe die zugrunde liegende ausführbare Datei lädt. Wenn dieser Parameter nicht angegeben ist, verwendet die Aufgabe den SDK-Installationspfad der Version des Frameworks, die von MSBuild ausgeführt wird. |
UseCommandProcessor | Optionaler bool -Parameter.Wenn die Festlegung auf true gegeben ist, erstellt diese Aufgabe eine Batchdatei für die Befehlszeile und führt sie aus, indem der Befehl nicht direkt ausgeführt wird, sondern der Befehlsprozessor verwendet wird. |
YieldDuringToolExecution | Optionaler bool -Parameter.Bei der Festlegung auf true ergibt diese Aufgabe den Knoten, wenn dessen Aufgabe ausgeführt wird. |
Hinweise
Diese Aufgabe ist nützlich, wenn eine bestimmte MSBuild-Aufgabe für den auszuführenden Auftrag nicht verfügbar ist. Im Gegensatz zu einer spezifischeren Aufgabe kann die Exec
-Aufgabe jedoch keine zusätzliche Verarbeitung oder bedingten Vorgänge durchführen, die auf dem Ergebnis des Tools oder des Befehls basieren, das bzw. der von dieser ausgeführt wird.
Anstatt einen Prozess direkt zu aufrufen, ruft die Exec
-Aufgabe cmd.exe unter Windows oder andernfalls sh auf.
Die Parameter IgnoreExitCode
und IgnoreStandardErrorWarningFormat
wirken sich auf die Bedingungen aus, unter denen die Aufgabe false
zurückgibt, um auf einen Fehler hinzuweisen. Bei Verwendung der Standardeinstellungen (false
für beide) wird von der Aufgabe Exec
durch Rückgabe von false
auf einen Fehler hingewiesen, wenn die ausführbare Datei einen Exitcode ungleich null aufweist oder im Standardfehlerstream der ausführbaren Datei eine Diagnosemeldung gefunden wird. Wenn von Exec
nur dann auf einen Fehler hingewiesen werden soll, wenn die ausführbare Datei einen Exitcode ungleich null zurückgibt, legen Sie IgnoreStandardErrorWarningFormat
auf true
fest.
Beispiel
Im folgenden Beispiel wird die Exec
-Aufgabe zum Ausführen eines Befehls verwendet.
<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>