Udostępnij za pośrednictwem


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 truezadanie 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 truezadanie 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 truezadanie 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 falsewartość , 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 truewartość , 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, Neverlub 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 truewartość , 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 trueprogram , 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 truewartoś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 falsewartość , co wskazuje błąd. W przypadku ustawień domyślnych (false dla obu) Exec zadanie wskazuje błąd (zwraca falsewartość ), 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>

Zobacz też