Ketika debugging di Visual Studio, kadang-kadang saya menambahkan breakpoint tetapi itu kosong dan VS mengatakan "Breakpoint saat ini tidak akan terkena. Kode sumber berbeda dari versi aslinya." Jelas ini mencegah saya untuk dapat melakukan debug.
Apa sih pesannya? Apa versi aslinya? Jika saya baru saja membuka solusi dan tidak membuat perubahan apa pun pada kode, bagaimana mungkin ada 'versi asli'?
.net
visual-studio
debugging
David
sumber
sumber
Jawaban:
Seperti dikatakan, "kode sumber berbeda dari versi aslinya".
Klik kanan pada folder proyek di dalam solusi explorer dan pilih untuk
Clean
. Bangun versi baru proyek dan breakpoint akan bekerja lagi!sumber
Jika Anda telah menghapus centang proyek DLL dalam konfigurasi build Debug , kode baru Anda tidak akan pernah dibuat!
Pergi ke
Build --> Configuration Manager ...
(di VS2010) dan periksa apakah proyek dengan kode yang Anda coba debug diperiksa untuk konfigurasi pembangunan saat ini.sumber
Any CPU
opsi dan itu berfungsi lagi.Bagi saya itu saat bekerja pada proyek WebSite. Setelah membersihkan folder temp ini saya mendapatkan kembali kesalahan kompiler yang tepat:
C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary ASP.NET Files
C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
Saya akhirnya menyelesaikan masalah ketika saya menemukan bahwa file kelas yang saya sengaja pindah ke subfolder, entah bagaimana muncul kembali di folder root. VS menggunakan yang satu itu sementara saya mengedit yang lain.
sumber
%localappdata%
di kotak pencarian akan membawa Anda langsung keC:\Documents and Settings\%username%\AppData\Local
Apakah kamu pernah melakukan ini?
Apakah Anda ingin melanjutkan dan menjalankan build sukses terakhir?
Jika Anda mencentang kotak dan menekan "Ya", Anda akan berhasil menjalankan build terakhir meskipun proyek Anda tidak dikompilasi. Ini berarti bahwa setiap kali Anda menetapkan breakpoint, Anda akan mendapatkan kesalahan itu.
Coba ubah nilai ini:
sumber
Pergi ke
Hapus tanda centang Memerlukan file sumber agar sama persis dengan versi aslinya
sumber
Pilih Debug di Konfigurasi Solusi , bukan Rilis
sumber
Perhatikan jendela "Output" di VS. Ini akan memberi tahu Anda apa majelis yang dimuat dan kapan. Anda mungkin melihat bahwa versi perakitan Anda yang lebih lama di suatu tempat di folder sedang dimuat.
Misalnya jika Anda memiliki banyak majelis dan saat ini Anda mencoba masuk ke salah satu majelis dukungan, CLR akan menangani penyelesaian majelis, yang dapat memuat file perakitan lain dari pada yang Anda rujuk dalam proyek.
sumber
Menutup Visual Studio dan membuka kembali solusinya dapat memperbaiki masalah, yaitu bug di dalam IDE itu sendiri (saya menjalankan VS2010).
Jika Anda memiliki lebih dari satu contoh menjalankan Visual Studio, Anda hanya perlu menutup contoh menjalankan solusi dengan masalah.
sumber
Cara baru untuk mendapatkan masalah ini telah muncul pada Visual Studio 2017 15.3.1 hingga 15.3.5. Jika Anda menggunakan EditorConfig ,
charset=utf8
opsi menyebabkan gejala-gejala ini. Tim VS telah mereproduksi ini dan mengatakan mereka sedang mengerjakannya .Jadi satu perbaikan adalah mengomentari
charset=utf8
baris Anda di file .editorconfig.Sunting: Ini harus diperbaiki pada VS 15.5.
sumber
charset=utf8
ditafsirkan sebagai "UTF-8 dengan BOM". Mengubah interpretasi itu menjadi "tanpa BOM" memecahkan beberapa file UTF-8 yang memiliki BOM di dalamnya. Jadi jika Anda mengalami masalah ini dan perbaikan Visual Studio belum dirilis, coba hapus BOM dari awal file teks Anda dan itu dapat memperbaiki masalah tersebut. (Komentar ini meminta referensi Zero Wing ... :-))Ini sering terjadi juga jika Anda menggunakan referensi file ke binari (alih-alih referensi proyek ke kode dalam proyek Anda), dan biner yang dikompilasi yang Anda referensi tidak sinkron dengan kode sumber yang sesuai pada mesin Anda. Ini bisa terjadi karena Anda mengunduh versi baru dari biner dari kontrol sumber tanpa kode sumber baru yang menyertainya, atau Anda memiliki beberapa versi biner di mesin Anda dan merujuk salinan lama, dll. Jika ini memang masalahnya, itu alasan yang baik untuk menggunakan referensi proyek sebanyak itu praktis.
sumber
Bagi saya, tidak ada item yang menyelesaikan masalah. Saya baru saja menambahkan baris kode baru di dalam fungsi itu, seperti:
dengan menambahkan itu, saya kira saya memicu studio visual untuk menambahkan fungsi ini ke versi aslinya
sumber
Ini dapat terjadi ketika waktu sistem berubah saat debugging atau di antara sesi debug, baik secara program, secara manual atau dengan program eksternal.
sumber
Ada pengaturan yang hampir tidak terlihat yang memperbaiki masalah ini untuk saya. Jika ada file sumber tertentu di mana breakpoint tidak mengenai, itu bisa didaftar di
Untuk beberapa alasan yang tidak diketahui oleh saya, VS 2013 memutuskan untuk menempatkan file sumber di sana, dan kemudian, saya tidak bisa menekan breakpoint dalam file itu lagi. Ini mungkin penyebab "kode sumber berbeda dari versi aslinya".
sumber
Masalahnya adalah bahwa info debug Anda tidak sinkron dengan perakitan Anda. Solusinya sederhana:
Harus melakukan trik!
(Yang aneh adalah, membangun kembali tanpa membuang file .pdb tidak selalu berfungsi. Saya dapat melihat tanggal yang dimodifikasi diperbarui, tetapi masih di suatu tempat dalam rantai (VS2013 debugger, IIS, cache perakitan) perubahan ini tidak terdeteksi )
sumber
Anda bisa mendapatkan pesan ini saat Anda menggunakan aktivator dan unit tempat Anda menetapkan breakpoint belum dimuat.
Breakpoint akan teratasi setelah aktivator memuat rakitan (dengan asumsi simbol rakitan dan debug diperbarui). Tempat yang baik untuk dilihat adalah jendela modul di menu debugging. Di sana Anda harus mencari majelis yang milik file Anda juga. Pertama periksa apakah rakitan sudah dimuat. Lalu, dari mana itu dimuat? Lalu, apakah file simbol dimuat. Lagi, dari mana file simbol diambil? Akhirnya periksa versi keduanya.
sumber
Saya juga mengalami ini. Kondisi yang menyebabkan masalah saya:
Saya telah menyebabkan ini dengan membuka versi sebelumnya (VS diminta untuk bertanya apakah saya ingin menunjukkan contoh ini dalam debugging IIS, saya menjawab 'Ya'), kemudian membuka versi saat ini (sekali lagi menanggapi permintaan IIS dengan 'Ya' ), lalu mencoba melakukan debug di versi sebelumnya.
Untuk menyelesaikannya, saya hanya menutup dan membuka kembali versi sebelumnya dan yang dimaksudkan, sekali lagi menyatakannya sebagai sumber debug.
sumber
Coba nonaktifkan dan atur ulang breakpoint saat menjalankan dalam mode debug alih-alih melakukannya sebelum meluncurkan mode debug.
sumber
Ini terjadi juga ketika men-debug proyek C ++ yang memuat modul yang telah diimplementasikan dengan beberapa bahasa CRL (Managed C ++, C # dll). Dalam situasi ini, pesan kesalahan memang menyesatkan.
Solusinya adalah dengan meletakkan properti konfigurasi dukungan Common language runtime (CLR) ke proyek startup dan kompilasi ulang itu.
sumber
Jika Anda memiliki lebih dari satu proyek dalam solusi Anda , maka pastikan bahwa proyek yang benar ditetapkan sebagai
StartUp Project
. Untuk menetapkan proyek tertentu sebagai Proyek Startup dari solusi Anda, Klik kanan proyek, pilihSet As StartUp Project
.Setelah saya mengatur Proyek StartUp saya dengan benar, break-point yang diinginkan tercapai oleh utas.
sumber
Saya mengalami ini dalam membangun 32bit di vs2017.
Tidak ada solusi yang tepat untuk saya. Saya restart, saya membersihkan file IDE, membersihkan solusi yang dibangun, menarik dari git repo dan membangun kembali solusi tanpa hasil.
Saya menarik dependensi 64bit dari nuget dan segera setelah saya menggunakan perakitan, sumber tidak dibangun ke dalam executable akhir lagi dan bukannya sumber cache cache sedang dibangun.
Saya menghapus konfigurasi nuget, menghapus rujukan yang direferensikan, mengunduh sumber, membuat log4net secara manual, menandatanganinya, menambahkannya ke folder di proyek saya, menambahkan referensi ke sana, dan saya dapat men-debug lagi.
Ini menyebalkan, saya harap itu muncul dalam daftar jawaban untuk dilihat semua orang.
Sunting: Tidak ada kesalahan selama pembuatan meskipun memiliki opsi "prompt pada kesalahan membangun" dihidupkan dalam pengaturan IDE.
sumber
Bagi saya solusinya disembunyikan di
Advanced Build Settings
properti proyek:Untuk alasan yang tidak diketahui itu diatur ke
none
: mengaturnya untukfull
menyebabkan breakpoint terkena.Untuk sampai ke dialog ini, buka properti proyek, lalu pergi ke
Build
, lalu pilihAdvanced...
tombol di bagian bawah halaman.sumber
Saya memiliki masalah yang sama di beberapa proyek dalam proyek arsitektur berlapis dan masalahnya adalah dalam konfigurasi kotak centang build untuk proyek yang dipilih belum diperiksa. jadi masalah itu diperbaiki untuk satu proyek.
Untuk satu lapisan lain ia memberikan masalah yang sama ini bahkan membangunnya memungkinkan dalam konfigurasi. Saya melakukan semua opsi lain seperti memulai kembali membersihkan proyek tetapi tidak ada yang membantu. Akhirnya saya menghapus centang pada kotak centang build untuk proyek tersebut dan membersihkan dan membangun kembali. lagi menandai kotak centang dan melakukan hal yang sama. kemudian masalah itu diperbaiki.
Semoga ini membantu..
sumber
Dalam kasus saya, saya melampirkan proses yang sedang berjalan di VS 2012. Saat melampirkan, Anda diberikan opsi untuk melakukan debug dalam berbagai mode (asli, skrip, silverlight, managed 2.0, managed 4.0, etc). Secara default, debugger memilih mode secara otomatis. Namun Otomatis tidak selalu membuat pilihan yang benar. Jika proses Anda berisi beberapa jenis kode, pastikan debugger menggunakan yang benar.
sumber
Dalam kasus saya, saya sedang mengembangkan aplikasi Windows CE, yang diuji terhadap emulator. Masalahnya adalah bahwa executable tidak dikerahkan ke emulator, sehingga .pdb (dalam lingkungan pengembangan) tidak sinkron dengan .exe (dalam emulator), karena .exe baru tidak pernah disalin ke emulator. Saya harus menghapus .exe di emulator untuk memaksa penerapan baru. Lalu berhasil.
sumber
Apa yang berhasil bagi saya adalah mengubah platform solusi dari x86 ke CPU Apa pun. Setelah berganti ke Any, saya menetapkan berhenti alamat, menjalankan situs web, membuka halaman, mengklik tombol dan berhenti. Saya menutup situs, berubah kembali ke x86 dan berhasil melakukan urutan yang sama.
sumber
Di bawah Windows 7, Visual Studio Express 2010, jika Anda telah mengaktifkan opsi Gunakan mode kompatibilitas untuk Windows XP SP3 , kesalahan ini dapat terjadi.
Saya menghapus centang pada opsi dan itu berhasil lagi. Klik kanan pada pintasan ke VS atau yang dapat dieksekusi, pilih properti dan kemudian kompatibilitas .
sumber
Pertama saya mencoba dari baris perintah;
menghapus file temp dari baris perintah berhasil.
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ File ASP.NET Sementara> rd / s root
Ketika saya menonaktifkan opsi "Aktifkan Kode Saya" di Alat -> Opsi -> Debugging -> Umum
Masalahnya teratasi untuk saya. Ini adalah aplikasi WCF, sedang mencoba men-debug halaman ashx. http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx
sumber
Itu terjadi pada saya karena saya punya proyek lain dalam solusi yang tidak membangun. Setelah saya membongkar proyek-proyek yang bermasalah (klik kanan pada proyek di explorer solusi -> Bongkar Proyek), membangun kembali solusi dan berlari lagi - breakpoint terpukul!
sumber
Itu bahagia berada di Visual Studio 2017 setelah saya menambahkan file yang ada ke proyek. Ini bekerja untuk saya:
SolutionFolder\.vs\SolutionName\v15\sqlite3
dan hapusstorage.ide
sumber
Pastikan Anda tidak dalam Mode Rilis ketika Anda mencoba untuk debug.
sumber