Saya memiliki proyek (A) yang mereferensikan rakitan dari perpustakaan kelas proyek eksternal (B) yang terletak di solusi vs lain.
Saya belum memahami bagaimana saya dapat secara efisien men-debug perpustakaan kelas dari B saat menjalankan program dari proyek A. Apakah ada sesuatu yang harus saya aktifkan pada proyek B seperti info debug dll sehingga saya dapat melangkah ke dalam waktu debug dari A?
Terima kasih sebelumnya.
sumber
Ini telah mengganggu saya untuk beberapa waktu. Apa yang biasanya saya lakukan adalah membangun kembali perpustakaan eksternal saya menggunakan mode debug, lalu menyalin file .dll dan .pdb ke bin situs web saya. Ini memungkinkan saya untuk masuk ke kode perpustakaan.
sumber
Asumsikan jalur
Proyek
A
Proyek
B
dan dll ProjectB dalam format
Untuk melakukan debug ke
ProjectB
dariProjectA
, lakukan hal berikutB
dll dengan dll.PDB
keProjectA
direktori kompilasi.ProjectA
. Ketika kode mencapai bagian di mana Anda perlu memanggil metode dll atau acara dll saat debugging, tekanF11
untuk masuk ke kode dll.CATATAN: JANGAN LEWATKAN UNTUK MENYALIN FILE .PDB
sumber
Saya menjalankan dua contoh studio visual - satu untuk dll eksternal dan satu lagi untuk aplikasi utama.
Di properti proyek dari dll eksternal, tetapkan yang berikut ini:
Acara Bangun:
copy /y "$(TargetDir)$(TargetName).dll" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).dll"
copy /y "$(TargetDir)$(TargetName).pdb" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).pdb"
Debug:
Mulai program eksternal:
C:\<path-to-main>\bin\debug\<AppName>.exe
Direktori Kerja
C:\<path-to-main>\bin\debug
Dengan cara ini, setiap kali saya membangun dll eksternal, itu akan diperbarui di direktori aplikasi utama. Jika saya menekan debug dari proyek dll eksternal - aplikasi utama berjalan, tetapi debugger hanya mengenai breakpoint di dll eksternal. Jika saya menekan debug dari proyek utama, aplikasi utama berjalan dengan dll eksternal yang paling baru dibangun, tetapi sekarang debugger hanya mencapai titik putus di proyek utama.
Saya menyadari satu debugger akan melakukan pekerjaan untuk keduanya, tetapi saya merasa lebih mudah untuk menjaga keduanya tetap lurus dengan cara ini.
sumber
[menurut Martin Beckett, orang yang mengirimkan jawaban ini]
Anda dapat melakukan debug ke pustaka eksternal.
Di tab pengaturan proyek, cari 'direktori studio visual' di bidang 'kode sumber' termasuk jalur ke sumber openCV. Kemudian pastikan bahwa file .pdb untuk setiap dll debug berada di direktori yang sama dengan dll.
sumber
Saya mengalami masalah yang sama karena breakpoint saya di proyek (B) tidak terkena. Solusi saya adalah membangun kembali proyek (B) kemudian men-debug proyek (A) karena dll perlu diperbarui.
Studio visual harus memungkinkan Anda melakukan debug ke perpustakaan eksternal.
sumber
Referensi NuGet
Asumsikan -Project_A (menghasilkan project_a.dll) -Project_B (menghasilkan project_b.dll) dan referensi Project_B ke Project_A oleh paket NuGet lalu salin project_a.dll, project_a.pdb ke folder Project_B / Paket. Akibatnya itu harus disalin ke / bin.
Sekarang debug Project_A. Ketika kode mencapai bagian di mana Anda perlu memanggil metode dll atau acara dll saat debugging, tekan F11 untuk masuk ke kode dll.
sumber