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.
Penting
Dimulai dengan Visual Studio 2022 versi 17.9, visualizer sekarang dapat ditulis dalam .NET 6.0+ yang berjalan di luar proses menggunakan model VisualStudio.Extensibility yang baru. Untuk ekstensi yang dibuat menggunakan model baru, lihat dokumentasi di Membuat visualizer debugger Visual Studio sebagai gantinya. Jika Anda perlu mendukung versi Visual Studio yang lebih lama atau ingin mengirim visualizer kustom Anda sebagai bagian dari DLL pustaka, maka gunakan informasi dalam artikel ini, yang hanya berlaku untuk model pengembangan ekstensi (VSSDK) yang lebih lama.
Panduan ini menunjukkan cara menulis visualizer sederhana dengan menggunakan Visual Basic. Visualizer yang akan Anda buat dalam panduan ini menampilkan konten string menggunakan kotak pesan Formulir Windows. Visualizer string sederhana ini adalah contoh dasar untuk menunjukkan bagaimana Anda dapat membuat visualizer untuk jenis data lain yang lebih berlaku untuk proyek Anda.
Nota
Kotak dialog dan perintah menu yang Anda lihat mungkin berbeda dari yang dijelaskan dalam Bantuan, tergantung pada pengaturan atau edisi aktif Anda. Untuk mengubah pengaturan Anda, buka menu Alat dan pilih Impor dan Ekspor . Untuk informasi selengkapnya, lihat pengaturan reset .
Kode visualizer harus ditempatkan dalam DLL yang akan dibaca oleh debugger. Langkah pertama adalah membuat proyek pustaka kelas untuk DLL.
Membuat dan Menyiapkan Proyek Pustaka Kelas
Untuk membuat proyek pustaka kelas
Buat proyek pustaka kelas baru.
Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik pustaka kelas, lalu pilih Pustaka Kelas Visual Basic (.NET Framework).
Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Pustaka Kelas baru (.NET Framework).
Ketik nama yang sesuai untuk pustaka kelas, seperti
MyFirstVisualizer, lalu klik Buat atau OK.Setelah membuat pustaka kelas, Anda harus menambahkan referensi ke Microsoft.VisualStudio.DebuggerVisualizers.DLL, sehingga Anda dapat menggunakan kelas yang ditentukan di sana. Namun, pertama, Anda memberi proyek Anda nama yang bermakna.
Untuk mengganti nama Class1.vb dan menambahkan Microsoft.VisualStudio.DebuggerVisualizers
Di Penjelajah Solusi, klik kanan Class1.vb, dan pada menu pintasan, klik Ganti Nama.
Ubah nama dari Class1.vb menjadi sesuatu yang bermakna, seperti DebuggerSide.vb.
Nota
Visual Studio secara otomatis mengubah deklarasi kelas di DebuggerSide.vb agar sesuai dengan nama file baru.
Di Penjelajah Solusi, klik kanan Visualizer Pertama Saya, dan pada menu pintasan, klik Tambahkan Referensi.
Dalam kotak dialog Tambahkan Referensi , pada tab Telusuri , pilih Telusuri dan temukan Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Anda dapat menemukan DLL di <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies subdirektori direktori penginstalan Visual Studio.
Klik OK.
Dalam DebuggerSide.vb, tambahkan pernyataan berikut di antara pernyataan
Imports.Imports Microsoft.VisualStudio.DebuggerVisualizers
Tambah Kode Debuger
Sekarang, Anda siap untuk membuat kode sisi debugger. Ini adalah kode yang berjalan dalam debugger untuk menampilkan informasi yang ingin Anda visualisasikan. Pertama, Anda harus mengubah deklarasi objek DebuggerSide sehingga mewarisi dari kelas dasar DialogDebuggerVisualizer.
Untuk mewarisi dari DialogDebuggerVisualizer
Di DebuggerSide.vb, buka baris kode berikut:
Public Class DebuggerSideEdit kode sehingga terlihat seperti ini:
Public Class DebuggerSide Inherits DialogDebuggerVisualizerNota
DialogDebuggerVisualizer mengharapkan argumen
FormatterPolicydi dalam konstruktornya. Namun, karena masalah keamanan yang dijelaskan dalam Pertimbangan sisi debugger khusus untuk .NET 5.0+, dimulai dengan Visual Studio 2022 versi 17.11, visualizer tidak akan dapat menentukanLegacykebijakan formatter.DialogDebuggerVisualizermemiliki satu metode abstrak,Show, yang harus Anda ambil alih.
Untuk mengambil alih metode DialogDebuggerVisualizer.Show
Di
public class DebuggerSide, tambahkan metode berikut:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End SubMetode
Showini berisi kode yang benar-benar membuat kotak dialog visualizer, atau antarmuka pengguna lainnya, dan menampilkan informasi yang telah diteruskan ke visualizer dari debugger. Anda harus menambahkan kode yang membuat kotak dialog dan menampilkan informasi. Dalam panduan ini, Anda akan melakukan ini menggunakan kotak pesan Formulir Windows. Pertama, Anda harus menambahkan referensi danImportspernyataan untuk System.Windows.Forms.
Untuk menambahkan System.Windows.Forms
Di Penjelajah Solusi, klik kanan Referensi, dan pada menu pintasan, klik Tambahkan Referensi.
Dalam kotak dialog Tambahkan Referensi , pada tab Telusuri , pilih Telusuri, dan temukan System.Windows.Forms.DLL.
Anda dapat menemukan DLL di C:\Windows\Microsoft.NET\Framework\v4.0.30319.
Klik OK.
Dalam DebuggerSide.cs, tambahkan pernyataan berikut ke
Importspernyataan:Imports System.Windows.Forms
Membuat Antarmuka Pengguna Visualizer Anda
Sekarang Anda akan menambahkan beberapa kode untuk membuat dan menampilkan antarmuka pengguna untuk visualizer Anda. Karena ini adalah visualizer pertama Anda, Anda akan menjaga antarmuka pengguna tetap sederhana dan menggunakan Kotak Pesan.
Untuk memperlihatkan output visualizer dalam kotak dialog
Dalam metode ,
Showtambahkan baris kode berikut:MessageBox.Show(objectProvider.GetObject().ToString())Contoh kode ini tidak menyertakan penanganan kesalahan. Anda harus menyertakan penanganan kesalahan dalam visualizer nyata, atau jenis aplikasi lainnya.
Pada menu Build , klik Build MyFirstVisualizer. Proyek diharapkan berhasil dibangun. Koreksi kesalahan build apa pun sebelum melanjutkan.
Tambahkan Atribut yang Diperlukan
Itu adalah akhir dari kode sisi debugger. Namun, ada satu langkah lagi: atribut yang memberi tahu sisi yang dianalisis tentang koleksi kelas mana yang mencakup visualizer.
Untuk menambahkan jenis yang akan divisualisasikan untuk kode sisi debuggee
Dalam kode debugger, Anda menentukan tipe objek yang akan divisualisasikan (sumber objek) untuk debuggee dengan menggunakan atribut DebuggerVisualizerAttribute. Properti Target mengatur jenis yang akan divisualisasikan.
Tambahkan kode atribut berikut ke DebuggerSide.vb, setelah
Importspernyataan tetapi sebelumnamespace MyFirstVisualizer:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>Pada menu Build , klik Build MyFirstVisualizer. Proyek diharapkan berhasil dibangun. Koreksi kesalahan build apa pun sebelum melanjutkan.
Membuat Test Harness
Pada titik ini, visualizer pertama Anda selesai. Jika Anda telah mengikuti langkah-langkah dengan benar, Anda dapat membangun visualizer dan menginstalnya ke Visual Studio. Namun, sebelum menginstal visualizer ke Visual Studio, Anda harus mengujinya untuk memastikan bahwa visualizer berjalan dengan benar. Sekarang Anda akan membuat kerangka uji untuk menjalankan visualizer tanpa menginstalnya ke dalam Visual Studio.
Untuk menambahkan metode pengujian untuk menampilkan visualizer
Tambahkan metode berikut ke kelas
public DebuggerSide:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End SubPada menu Build , klik Build MyFirstVisualizer. Proyek diharapkan berhasil dibangun. Koreksi kesalahan build apa pun sebelum melanjutkan.
Selanjutnya, Anda harus membuat proyek yang dapat dieksekusi untuk memanggil DLL visualizer Anda. Untuk kesederhanaan, gunakan proyek aplikasi konsol.
Untuk menambahkan proyek aplikasi konsol ke solusi
Di Penjelajah Solusi, klik kanan solusi, pilih Tambahkan, lalu klik Proyek Baru.
Dalam kotak Pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Aplikasi Konsol baru (.NET Framework). Dalam kotak dialog yang muncul, pilih Buat.
Ketik nama yang sesuai untuk pustaka kelas, seperti
MyTestConsole, lalu klik Buat atau OK.Sekarang, Anda harus menambahkan referensi yang diperlukan sehingga MyTestConsole dapat memanggil MyFirstVisualizer.
Untuk menambahkan referensi yang diperlukan ke MyTestConsole
Di Penjelajah Solusi, klik kanan MyTestConsole, dan pada menu pintasan, klik Tambahkan Referensi.
Dalam kotak dialog Tambahkan Referensi , pada tab Telusuri , klik Microsoft.VisualStudio.DebuggerVisualizers.
Klik OK.
Klik kanan MyTestConsole, lalu klik Tambahkan Referensi lagi.
Dalam kotak dialog Tambahkan Referensi , klik tab Proyek , lalu pilih MyFirstVisualizer.
Klik OK.
Selesaikan Test Harness Anda dan Uji Visualizer Anda
Sekarang, Anda akan menambahkan kode untuk menyelesaikan kerangka uji.
Untuk menambahkan kode ke MyTestConsole
Di Penjelajah Solusi, klik kanan Program.vb, dan pada menu pintasan, klik Ganti Nama.
Edit nama dari Module1.vb ke sesuatu yang sesuai, seperti TestConsole.vb.
Perhatikan bahwa Visual Studio secara otomatis mengubah deklarasi kelas di TestConsole.vb agar sesuai dengan nama file baru.
Di TestConsole. vb, tambahkan pernyataan berikut
Imports:Imports MyFirstVisualizerDalam metode
Main, tambahkan kode berikut:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)Sekarang Anda siap untuk menguji visualizer pertama Anda.
Untuk menguji visualizer
Di Penjelajah Solusi, klik kanan MyTestConsole, dan pada menu pintasan, klik Atur sebagai Proyek Startup.
Pada menu Debug , klik Mulai.
Aplikasi konsol dimulai. Visualizer muncul dan menampilkan string "Hello, World."
Selamat. Anda baru saja membangun dan menguji visualizer pertama Anda.
Jika Anda ingin menggunakan visualizer Anda di Visual Studio daripada sekadar memanggilnya dari test harness, Anda harus menginstalnya. Untuk informasi selengkapnya, lihat Cara: Menginstal Visualizer.