Mengabaikan kesalahan dalam tugas
Terkadang Anda ingin build tahan terhadap kesalahan dalam tugas tertentu. Jika tugas non-kritis tersebut gagal, Anda ingin build itu dilanjutkan karena masih dapat menghasilkan output yang diperlukan. Misalnya, jika proyek menggunakan tugas SendMail
untuk mengirim pesan email setelah setiap komponen dibuat, Anda mungkin menganggap build dapat dilanjutkan ke penyelesaian bahkan ketika server email tidak tersedia dan pesan status tidak dapat dikirim. Atau, misalnya, jika file perantara biasanya dihapus selama build, mungkin Anda menganggap build itu dapat melanjutkan penyelesaian bahkan ketika file tersebut tidak dapat dihapus.
Selain metode yang dijelaskan di sini yang khusus untuk tugas, Anda juga dapat menggunakan cara umum MSBuild untuk mengabaikan peringatan, misalnya, dengan menggunakan properti MSBuildWarningsAsMessages
. Lihat Properti proyek MSBuild umum.
Menggunakan atribut ContinueOnError
Atribut ContinueOnError
pada elemen Task
mengontrol apakah build berhenti atau berlanjut saat terjadi kegagalan tugas. Saat build berlanjut, atribut ini juga mengontrol apakah kesalahan diperlakukan sebagai kesalahan atau peringatan.
Atribut ContinueOnError
dapat berisi salah satu nilai berikut:
WarnAndContinue atau true. Ketika tugas gagal, tugas berikutnya dalam elemen Target dan build terus dijalankan, dan semua kesalahan dari tugas diperlakukan sebagai peringatan.
ErrorAndContinue. Ketika tugas gagal, tugas berikutnya dalam elemen
Target
dan build terus dijalankan, dan semua kesalahan dari tugas tersebut dianggap sebagai peringatan.ErrorAndStop atau salah (default). Ketika tugas gagal, tugas yang tersisa dalam elemen
Target
dan build tidak berjalan, dan seluruh elemenTarget
dan buildnya dianggap gagal.
Versi .NET Framework sebelum 4.5 hanya mendukung nilai true
dan false
.
Nilai default ContinueOnError
adalah ErrorAndStop
. Jika atribut diatur ke ErrorAndStop
, Anda membuat perilaku tersebut menjadi eksplisit kepada siapa pun yang membaca file proyeknya.
Untuk mengabaikan kesalahan dalam tugas
Gunakan atribut ContinueOnError
tugas. Contohnya:
<Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>
Contoh
Contoh kode berikut menggambarkan bahwa target Build
masih berjalan dan build dianggap berhasil, meskipun tugas Delete
gagal.
<Project DefaultTargets="FakeBuild"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Files Include="*.obj"/>
</ItemGroup>
<Target Name="Clean">
<Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>
</Target>
<Target Name="FakeBuild" DependsOnTargets="Clean">
<Message Text="Building after cleaning..."/>
</Target>
</Project>