Format MSBuild dan Visual Studio untuk pesan diagnostik
Ketika alat dijalankan yang menghasilkan beberapa teks, MSBuild memeriksa teks untuk kesalahan dan peringatan. Banyak alat menggunakan format yang diketahui untuk melaporkan pesan ini. Secara default, MSBuild memeriksa teks dan melaporkan kesalahan dan/atau peringatan berdasarkan output. Perilaku ini dapat diubah atau dinonaktifkan dengan menggunakan parameter ini pada Exec
tugas: IgnoreStandardErrorWarningFormat
, CustomErrorRegularExpression
, dan CustomWarningRegularExpression
.
Catatan
Jika Anda memutuskan untuk menggunakan ekspresi reguler Anda sendiri untuk mendeteksi kesalahan dan peringatan, maka Anda harus tahu bahwa MSBuild akan melihat hasil satu baris pada satu waktu. Bahkan jika regex kustom Anda akan cocok dengan sesuatu di beberapa baris, regex kustom tidak akan berulah seperti itu karena bagaimana MSBuild memproses teks tersebut.
Lihat empat pesan berikut, yang semuanya diformat dengan benar dan akan dikenali oleh MSBuild dan Microsoft Visual Studio:
Main.cs(17,20): warning CS0168: The variable 'x' is declared but never used
C:\dir1\strings.resx(2) : error BC30188: Declaration expected.
cl : Command line warning D4024 : unrecognized source file type 'file1.cs', object . . .
error CS0006: Metadata file 'System.dll' could not be found.
Pesan-pesan ini sesuai dengan format lima bagian khusus yang ditunjukkan di sini. Urutan bagian-bagian ini penting dan tidak boleh berubah.
Origin
: : Subcategory
Category
Code
Text
Contohnya,
c1 : Command line warning D4024 : unrecognized source file type 'test.xyz'
Origin: c1
Subcategory: Command line
Category: warning
Code: D4024
Text: unrecognized source file type 'test.zyz'
Masing-masing komponen format ini dijelaskan sebagai berikut:
Asal (Wajib) Asal bisa kosong. Jika ada, asalnya biasanya adalah nama alat, seperti
cl
dalam salah satu contoh. Tetapi bisa juga menjadi nama file, seperti "Main.cs," yang ditunjukkan dalam contoh lain. Jika itu adalah nama file, maka itu harus merupakan nama file absolut atau relatif, diikuti dengan informasi baris/kolom berkurung opsional dalam salah satu formulir berikut:(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col)
Baris dan kolom dimulai dari 1 dalam file; artinya, awal file adalah 1, dan kolom paling kiri adalah 1. Jika Asal adalah nama alat, maka itu tidak boleh berubah berdasarkan lokal; artinya, perlu lokal-netral.
Subkategori (Opsional) Subkategori digunakan untuk mengklasifikasikan kategori itu sendiri lebih lanjut; tidak boleh dilokalkan.
Kategori (Wajib) Harus berupa "kesalahan" atau "peringatan". Kasus tidak masalah. Seperti halnya asal, kategori tidak boleh dilokalkan.
Kode (Opsional) mengidentifikasi kode kesalahan/kode peringatan khusus aplikasi. Kode tidak boleh dilokalkan dan tidak boleh berisi spasi.
Teks Teks Ramah pengguna yang menjelaskan kesalahan, dan harus dilokalkan jika Anda melayani beberapa lokal.
Ketika MSBuild memanggil alat baris perintah (misalnya, csc.exe
atau vbc.exe
), MSBuild melihat output yang dipancarkan oleh alat ke aliran kesalahan standar keluar dan standar. Setiap baris yang cocok dengan format kesalahan yang baru saja saya jelaskan akan diperlakukan secara khusus; artinya, baris yang dikenali sebagai kesalahan atau peringatan akan diubah menjadi kesalahan build dan peringatan, masing-masing. Untuk melihat manfaat nyata dari ini, Anda harus membangun dari dalam alat pengembangan seperti Visual Studio atau VS Code. Karena MSBuild memperlakukan pesan-pesan ini secara khusus, pesan tersebut dicatat sebagai peringatan dan kesalahan kelas satu di daftar tugas Visual Studio. Jika Asal menentukan informasi baris/kolom, maka mengklik dua kali pesan akan membawa Anda ke sumber kesalahan dalam file yang menyinggung.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk