Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Platform build membutuhkan kemampuan untuk menjalankan sejumlah tindakan selama proses build. MSBuild menggunakan tugas untuk melakukan tindakan ini. Tugas adalah unit kode yang dapat dieksekusi yang digunakan oleh MSBuild untuk melakukan operasi build atomik.
Logika tugas
Format file proyek XML MSBuild tidak dapat sepenuhnya menjalankan operasi build sendiri, sehingga logika tugas harus diimplementasikan di luar file proyek.
Logika eksekusi tugas diimplementasikan sebagai kelas .NET yang mengimplementasikan ITask antarmuka, yang didefinisikan dalam Microsoft.Build.Framework namespace.
Kelas tugas juga menentukan parameter input dan output yang tersedia untuk tugas dalam file proyek. Semua properti non-abstrak non-abstrak yang dapat diatur publik yang dapat diekspos oleh kelas tugas dapat diberikan nilai dalam file proyek dengan menempatkan atribut yang sesuai dengan nama yang sama pada elemen Tugas , dan mengatur nilainya seperti yang ditunjukkan dalam contoh nanti di artikel ini.
Anda dapat menulis tugas Anda sendiri dengan menulis kelas terkelola yang mengimplementasikan ITask antarmuka. Untuk informasi selengkapnya, lihat Penulisan tugas.
Menjalankan tugas dari file proyek
Sebelum menjalankan tugas dalam file proyek, Anda harus terlebih dahulu memetakan jenis dalam rakitan yang mengimplementasikan tugas ke nama tugas dengan elemen UsingTask . Ini memungkinkan MSBuild tahu di mana mencari logika eksekusi tugas Anda saat menemukannya di file proyek Anda.
Untuk menjalankan tugas dalam file proyek MSBuild, buat elemen dengan nama tugas sebagai anak dari Target elemen. Jika tugas menerima parameter, ini diteruskan sebagai atribut elemen .
Daftar dan properti item MSBuild dapat digunakan sebagai parameter. Misalnya, kode berikut memanggil MakeDir tugas dan mengatur nilai Directories properti MakeDir objek yang sama dengan nilai BuildDir properti:
<Target Name="MakeBuildDirectory">
<MakeDir
Directories="$(BuildDir)" />
</Target>
Tugas juga dapat mengembalikan informasi ke file proyek, yang dapat disimpan dalam item atau properti untuk digunakan nanti. Misalnya, kode berikut memanggil Copy tugas dan menyimpan informasi dari CopiedFiles properti output dalam SuccessfullyCopiedFiles daftar item.
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(MyDestFolder)">
<Output
TaskParameter="CopiedFiles"
ItemName="SuccessfullyCopiedFiles"/>
</Copy>
</Target>
Tugas yang disertakan
MSBuild dikirim dengan banyak tugas seperti Salin, yang menyalin file, MakeDir, yang membuat direktori, dan Csc, yang mengkompilasi file kode sumber C#. Untuk daftar lengkap tugas dan informasi penggunaan yang tersedia, lihat referensi tugas .
Tugas yang ditimpa
MSBuild mencari tugas di beberapa lokasi. Lokasi pertama berada dalam file dengan ekstensi .OverrideTasks yang disimpan di direktori MSBuild. Tugas dalam file-file ini mengambil alih tugas lain dengan nama yang sama, termasuk tugas dalam file proyek. Lokasi kedua ada di file proyek dan impornya. Jika tugas tidak ditentukan dalam proyek, tugas tersebut akan dicari dalam tugas default MSBuild yang ditentukan dalam .tasks file di direktori MSBuild.