Exec — Zadanie
Uruchamia określony program lub polecenie przy użyciu określonych argumentów.
Parametry
W poniższej tabeli opisano parametry zadania Exec
.
Parametr | Opis |
---|---|
Command |
Wymagany parametr interfejsu String .Polecenia do uruchomienia. Mogą to być polecenia systemowe, takie jak attrib, lub wykonywalne, takie jak program.exe, runprogram.bat lub setup.msi. Ten parametr może zawierać wiele wierszy poleceń. Alternatywnie można umieścić wiele poleceń w pliku wsadowym i uruchomić go przy użyciu tego parametru. |
ConsoleOutput |
Opcjonalny ITaskItem[] parametr wyjściowy.Każde wyjście elementu jest wierszem ze standardowych danych wyjściowych lub standardowego strumienia błędów emitowanego przez narzędzie. Jest to przechwytywane tylko wtedy, gdy ConsoleToMsBuild jest ustawiona wartość true . |
ConsoleToMsBuild |
Opcjonalny Boolean parametr.Jeśli true zadanie przechwyci standardowy błąd i standardowe dane wyjściowe narzędzia i udostępni je w parametrze wyjściowym ConsoleOutput .Wartość domyślna: false . |
CustomErrorRegularExpression |
Opcjonalny String parametr.Określa wyrażenie regularne używane do wyszukiwania wierszy błędów w danych wyjściowych narzędzia. Jest to przydatne w przypadku narzędzi, które generują nietypowo sformatowane dane wyjściowe. Jeśli nie IgnoreStandardErrorWarningFormat zostanie określony, to wyrażenie regularne jest dodatkiem do standardowych.Ustawienie domyślne: null (bez przetwarzania niestandardowego). |
CustomWarningRegularExpression |
Opcjonalny String parametr.Określa wyrażenie regularne, które jest używane do wyszukiwania wierszy ostrzeżeń w danych wyjściowych narzędzia. Jest to przydatne w przypadku narzędzi, które generują nietypowo sformatowane dane wyjściowe. Jeśli nie IgnoreStandardErrorWarningFormat zostanie określony, to wyrażenie regularne jest dodatkiem do standardowych.Ustawienie domyślne: null (bez przetwarzania niestandardowego). |
EchoOff |
Opcjonalny Boolean parametr.Jeśli true zadanie nie będzie emitować rozszerzonej formy Command do dziennika MSBuild.Wartość domyślna: false . |
ExitCode |
Opcjonalny Int32 parametr tylko do odczytu.Określa kod zakończenia, który jest dostarczany przez wykonane polecenie, z tą różnicą, że jeśli zadanie zarejestrowało błędy, ale proces miał kod zakończenia 0 (powodzenie), ExitCode jest ustawiony na -1. |
IgnoreExitCode |
Opcjonalny Boolean parametr.Jeśli true zadanie ignoruje kod zakończenia udostępniany przez wykonane polecenie. W przeciwnym razie zadanie zwraca false , jeśli wykonane polecenie zwraca kod zakończenia niezerowy.Wartość domyślna: false . |
IgnoreStandardErrorWarningFormat |
Opcjonalny Boolean parametr.Jeśli false wartość , wybiera wiersze w danych wyjściowych, które pasują do standardowego formatu błędu/ostrzeżenia, i rejestruje je jako błędy/ostrzeżenia. Jeśli true wartość , wyłącz to zachowanie.Wartość domyślna: false . |
Outputs |
Opcjonalny ITaskItem[] parametr wyjściowy.Zawiera elementy wyjściowe z zadania. Zadanie Exec nie ustawia się na siebie. Zamiast tego można je podać tak, jakby zostały ustawione, aby można było ich użyć w dalszej części projektu. |
StdErrEncoding |
Opcjonalny String parametr wyjściowy.Określa kodowanie przechwyconego strumienia błędu standardowego zadania. Wartość domyślna to bieżące kodowanie danych wyjściowych konsoli. |
StdOutEncoding |
Opcjonalny String parametr wyjściowy.Określa kodowanie przechwyconego standardowego strumienia wyjściowego zadania. Wartość domyślna to bieżące kodowanie danych wyjściowych konsoli. |
UseUtf8Encoding |
Opcjonalny String parametr.Określa, czy używać strony kodowej UTF8 podczas przetwarzania wiersza polecenia dla wykonanych poleceń. Prawidłowe wartości to Always , Never lub Detect . Wartość domyślna to Detect , co oznacza używanie strony kodowej UTF8 tylko wtedy, gdy znaki inne niż ANSI są obecne. |
WorkingDirectory |
Opcjonalny String parametr.Określa katalog, w którym zostanie uruchomione polecenie. Ustawienie domyślne: bieżący katalog roboczy projektu. |
Parametry toolTaskExtension
To zadanie dziedziczy z ToolTaskExtension klasy dziedziczonej ToolTask po klasie, która dziedziczy się po Task klasie. Ten łańcuch dziedziczenia dodaje kilka parametrów do zadań, które pochodzą z nich.
W poniższej tabeli opisano parametry klas bazowych:
Parametr | Opis |
---|---|
EchoOff | Opcjonalny bool parametr.Gdy jest ustawiona true wartość , to zadanie przekazuje /Q do wiersza polecenia cmd.exe , tak aby wiersz polecenia nie został skopiowany do stdout. |
EnvironmentVariables | Opcjonalny String parametr tablicy.Tablica definicji zmiennych środowiskowych oddzielona średnikami. Każda definicja powinna określać nazwę zmiennej środowiskowej i wartość oddzieloną znakiem równości. Te zmienne są przekazywane do zduplikowanego pliku wykonywalnego oprócz zwykłego bloku środowiska lub selektywnego zastępowania. Na przykład Variable1=Value1;Variable2=Value2 . |
ExitCode | Opcjonalny Int32 parametr tylko do odczytu.Określa kod zakończenia udostępniany przez wykonane polecenie. Jeśli zadanie zarejestrowało błędy, ale proces miał kod zakończenia 0 (powodzenie), jest to ustawione na -1. |
LogStandardErrorAsError | Opcjonalny bool parametr.Jeśli true program , wszystkie komunikaty odebrane w standardowym strumieniu błędów są rejestrowane jako błędy. |
StandardErrorImportance | Opcjonalny String parametr.Ważność rejestrowania tekstu ze standardowego strumienia błędów. |
StandardOutputImportance | Opcjonalny String parametr.Ważność, za pomocą której ma być rejestrowany tekst ze standardowego strumienia wychodzącego. |
Timeout | Opcjonalny Int32 parametr.Określa czas w milisekundach, po którym plik wykonywalny zadania zostanie zakończony. Wartość domyślna to Int.MaxValue , co oznacza, że nie ma limitu czasu. Limit czasu wynosi w milisekundach. |
ToolExe | Opcjonalny string parametr.Projekty mogą implementować tę funkcję, aby zastąpić element ToolName. Zadania mogą zastąpić tę wartość, aby zachować wartość ToolName. |
ToolPath | Opcjonalny string parametr.Określa lokalizację, z której zadanie ładuje źródłowy plik wykonywalny. Jeśli ten parametr nie zostanie określony, zadanie używa ścieżki instalacyjnej zestawu SDK odpowiadającej wersji platformy z uruchomionym programem MSBuild. |
UseCommandProcessor | Opcjonalny bool parametr.Po ustawieniu true wartości to zadanie tworzy plik wsadowy dla wiersza polecenia i wykonuje go przy użyciu procesora poleceń zamiast bezpośredniego wykonywania polecenia. |
YieldDuringToolExecution | Opcjonalny bool parametr.Gdy jest ustawiona wartość true , to zadanie daje węzeł, gdy jego zadanie jest wykonywane. |
Uwagi
To zadanie jest przydatne, gdy określone zadanie MSBuild dla zadania, które chcesz wykonać, jest niedostępne. Jednak Exec
zadanie, w przeciwieństwie do bardziej określonego zadania, nie może wykonywać dodatkowych operacji przetwarzania lub warunkowych na podstawie wyniku narzędzia lub polecenia, które jest uruchamiane.
Zamiast bezpośredniego wywoływania procesu, Exec
zadanie wywołuje cmd.exe w systemie Windows lub sh w inny sposób.
Parametry IgnoreExitCode
i IgnoreStandardErrorWarningFormat
wpływają na warunki, w których zadanie zwraca false
wartość , co wskazuje błąd. W przypadku ustawień domyślnych (false
dla obu) Exec
zadanie wskazuje błąd (zwraca false
wartość ), jeśli plik wykonywalny ma kod zakończenia inny niż zero lub jeśli komunikat diagnostyczny zostanie znaleziony w standardowym strumieniu błędów pliku wykonywalnego. Jeśli chcesz Exec
wskazać błąd tylko wtedy, gdy plik wykonywalny zwraca kod zakończenia inny niż zero, ustaw wartość IgnoreStandardErrorWarningFormat
true
.
Przykład
W poniższym przykładzie użyto Exec
zadania do uruchomienia polecenia.
<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>