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.

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.

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, werden Zeilen in der Ausgabe ausgewählt, die dem standardmäßigen Fehler-/Warnungsformat entsprechen, und als Fehler/Warnungen protokolliert. 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>

Siehe auch