Tugas Exec
Menjalankan program atau perintah yang ditentukan dengan menggunakan argumen yang ditentukan.
Parameter
Tabel berikut menjelaskan parameter untuk tugas tersebut Exec
.
Parameter | Deskripsi |
---|---|
Command |
Parameter String wajib.Perintah yang akan dijalankan. Ini dapat berupa perintah sistem, seperti attrib, atau executable, seperti program.exe, runprogram.bat, atau setup.msi. Parameter ini dapat berisi beberapa baris perintah. Atau, Anda dapat menempatkan beberapa perintah dalam file batch dan menjalankannya dengan menggunakan parameter ini. |
ConsoleOutput |
Parameter output ITaskItem[] opsional.Setiap output item adalah baris dari output standar atau aliran kesalahan standar yang dipancarkan oleh alat. Ini hanya diambil jika ConsoleToMsBuild diatur ke true . |
ConsoleToMsBuild |
Parameter Boolean opsional.Jika true , tugas akan menangkap kesalahan standar dan output standar alat dan membuatnya tersedia dalam parameter output ConsoleOutput .Default: false . |
CustomErrorRegularExpression |
Parameter String opsional.Menentukan ekspresi reguler yang digunakan untuk melihat baris kesalahan dalam output alat. Ini berguna untuk alat yang menghasilkan output yang luar biasa diformat. Kecuali IgnoreStandardErrorWarningFormat ditentukan, ekspresi reguler ini selain ekspresi standar.Default: null (tidak ada pemrosesan kustom). |
CustomWarningRegularExpression |
Parameter String opsional.Menentukan ekspresi reguler yang digunakan untuk melihat baris peringatan dalam output alat. Ini berguna untuk alat yang menghasilkan output yang luar biasa diformat. Kecuali IgnoreStandardErrorWarningFormat ditentukan, ekspresi reguler ini selain ekspresi standar.Default: null (tidak ada pemrosesan kustom). |
EchoOff |
Parameter Boolean opsional.Jika true , tugas tidak akan memancarkan formulir Command yang diperluas ke log MSBuild.Default: false . |
ExitCode |
Parameter baca-saja output Int32 opsional.Menentukan kode keluar yang disediakan oleh perintah yang dijalankan, kecuali bahwa jika tugas mencatat kesalahan apa pun, tetapi proses memiliki kode keluar 0 (berhasil), ExitCode diatur ke -1. |
IgnoreExitCode |
Parameter Boolean opsional.Jika true , tugas mengabaikan kode keluar yang disediakan oleh perintah yang dijalankan. Jika tidak, tugas akan mengembalikan false jika perintah yang dijalankan mengembalikan kode keluar bukan nol.Default: false . |
IgnoreStandardErrorWarningFormat |
Parameter Boolean opsional.Jika false , memilih baris dalam output yang cocok dengan format kesalahan/peringatan standar, dan mencatatnya sebagai kesalahan/peringatan. Jika true , nonaktifkan perilaku ini.Default: false . |
Outputs |
Parameter output ITaskItem[] opsional.Berisi item output dari tugas. Tugas Exec tidak mengaturnya sendiri. Sebagai gantinya, Anda dapat menyediakannya seolah-olah itu mengaturnya, sehingga dapat digunakan nanti dalam proyek. |
StdErrEncoding |
Parameter output String opsional.Menentukan pengodean aliran kesalahan standar tugas yang diambil. Defaultnya adalah pengodean output konsol saat ini. |
StdOutEncoding |
Parameter output String opsional.Menentukan pengodean aliran output standar tugas yang diambil. Defaultnya adalah pengodean output konsol saat ini. |
UseUtf8Encoding |
Parameter String opsional.Menentukan apakah akan menggunakan halaman kode UTF8 saat memproses baris perintah untuk perintah yang dijalankan. Nilai yang valid adalah Always , Never , atau Detect . Defaultnya adalah Detect , yang berarti menggunakan halaman kode UTF8 hanya ketika karakter non-ANSI ada. |
WorkingDirectory |
Parameter String opsional.Menentukan direktori tempat perintah akan dijalankan. Default: Direktori kerja proyek saat ini. |
Parameter ToolTaskExtension
Tugas ini mewarisi dari kelas ToolTaskExtension, yang mewarisi dari kelas ToolTask, yang mewarisi dari Task kelas itu sendiri. Rantai pewarisan ini menambahkan beberapa parameter ke tugas yang berasal dari tugas itu sendiri.
Tabel berikut ini menjelaskan parameter kelas dasar:
Parameter | Deskripsi |
---|---|
EchoOff | Parameter bool opsional.Ketika diatur ke true , tugas ini meneruskan /Q ke baris perintahcmd.exe, sehingga baris perintah tidak disalin ke stdout. |
EnvironmentVariables | Parameter array String opsional.Array definisi variabel lingkungan, dipisahkan oleh titik koma. Setiap definisi harus menentukan nama dan nilai variabel lingkungan yang dipisahkan oleh tanda sama dengan. Variabel-variabel ini diteruskan ke yang dapat dijalankan yang dihasilkan selain, atau secara selektif mengambil alih, blok lingkungan reguler. Contohnya, Variable1=Value1;Variable2=Value2 . |
ExitCode | Parameter baca-saja output Int32 opsional.Tentukan kode keluar yang disediakan oleh perintah yang dijalankan. Jika tugas mencatat kesalahan apa pun, tetapi prosesnya memiliki kode keluar 0 (berhasil), ini diatur ke -1. |
LogStandardErrorAsError | Parameter bool opsional.Jika true , semua pesan yang diterima pada aliran kesalahan standar dicatat sebagai kesalahan. |
StandardErrorImportance | Parameter String opsional.Pentingnya untuk mencatat teks dari aliran kesalahan standar. |
StandardOutputImportance | Parameter String opsional.Pentingnya untuk mencatat teks dari aliran keluar standar. |
Timeout | Parameter Int32 opsional.Menentukan jumlah waktu, dalam milidetik, yang setelahnya tugas yang dapat dieksekusi dihentikan. Nilai defaultnya adalah Int.MaxValue , menunjukkan bahwa tidak ada periode waktu habis. Waktu habis dalam milidetik. |
ToolExe | Parameter string opsional.Proyek dapat menerapkan ini untuk mengambil alih ToolName. Tugas dapat mengambil alih ini untuk mempertahankan ToolName. |
ToolPath | Parameter string opsional.Tentukan lokasi dari mana tugas memuat file eksekusi yang mendasarinya. Jika parameter ini tidak ditentukan, tugas menggunakan jalur penginstalan SDK yang sesuai dengan versi kerangka kerja yang menjalankan MSBuild. |
UseCommandProcessor | Parameter bool opsional.Saat diatur ke true , tugas ini membuat file batch untuk baris perintah dan menjalankannya dengan menggunakan prosesor perintah alih-alih menjalankan perintah secara langsung. |
YieldDuringToolExecution | Parameter bool opsional.Saat diatur ke true , tugas ini menghasilkan node saat tugasnya dijalankan. |
Keterangan
Tugas ini berguna ketika tugas MSBuild tertentu untuk pekerjaan yang ingin Anda lakukan tidak tersedia. Namun, tugas Exec
, tidak seperti tugas yang lebih spesifik, tidak dapat melakukan pemrosesan tambahan atau operasi kondisional berdasarkan hasil alat atau perintah yang dijalankannya.
Alih-alih langsung memanggil proses, Exec
tugas memanggil cmd.exe di Windows, atau sh sebaliknya.
Parameter IgnoreExitCode
dan IgnoreStandardErrorWarningFormat
memengaruhi kondisi di mana tugas mengembalikan false
, menunjukkan kesalahan. Dengan pengaturan default (false
untuk keduanya), tugas Exec
menunjukkan kegagalan (mengembalikan false
) baik jika executable memiliki kode keluar bukan nol, atau jika pesan diagnostik ditemukan di aliran kesalahan standar yang dapat dieksekusi. Jika Anda hanya ingin Exec
menunjukkan kegagalan jika executable mengembalikan kode keluar bukan nol, maka atur IgnoreStandardErrorWarningFormat
ke true
.
Contoh
Contoh berikut menggunakan tugas Exec
untuk menjalankan perintah.
<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>