Saya mencoba menyiapkan debugging sumber .NET dengan mengikuti panduan MDSN ini . Simbol cache diatur dengan benar, seperti centang 'Enable .NET Framework source stepping'.
Tetapi kemudian, setiap kali saya ingin masuk ke kode .NET, saya diminta untuk menentukan lokasi file cs yang relevan. Pesan kesalahannya adalah
You need to find <filename>.cs to view the source for the current call stack frame
dan The debugger could not locate the source file <filename>.cs
.
Saya ditawari untuk mencari file (tetapi saya tidak memilikinya) atau melihat pembongkaran (tapi saya tidak menginginkannya).
Bagaimana cara masuk ke kode sumber .NET?
Memeriksa
Tools
->Options
->Debugging
->General
->Enable source server support
secara misterius membuat semuanya bekerja. Saya harap hal yang sama berlaku untuk Andasumber
Ini juga membutuhkan waktu satu jam. Saya akhirnya memperbaikinya dengan mengatur ulang Pengaturan -> Alat -> Pengaturan Impor dan Ekspor -> Atur ulang semua pengaturan
sumber
Jawaban di sini semua berbicara tentang mengabaikan / menghindari kode sumber daripada benar-benar melangkah ke dalamnya.
@JBSnorro
berada di jalur yang benar tetapi masalahnya adalah Microsoft tampaknya tidak menerbitkan semua simbol / sumber .NET yang mungkin Anda temui. Saya tidak tahu apakah itu disengaja di pihak mereka tetapi untuk masuk ke sumber MS mereka perlu mempublikasikan setiap versi dari setiap perakitan yang merupakan tugas logistik yang besar.Tools
->Options
->Debugging
->General
->Enable source server support
akan berfungsi dalam banyak kasus tetapi saya menemukan misalnyamscorlib.dll
untuk 4.6.1 tidak memiliki simbol dan / atau sumber yang didekompilasi. Jadi saya tidak bisa masuk ke kode sumber umum sepertiDictionary.cs
atauTask.cs
sebagai contoh. Karena sumber & simbol server simbol MS kemungkinan besar berubah sepanjang waktu. Masalah saya mungkin teratasi pada saat Anda membaca ini?Ketika saya men-debug solusi yang sama di Jetbrain's Rider, saya dapat melihat dan melangkah melalui setiap kelas di setiap perakitan NET tanpa masalah. Namun di VS saya hanya bisa masuk ke beberapa kelas tapi tidak ke kelas lain?
Jika Anda benar-benar berkomitmen untuk masuk ke semua kode sumber .NET Anda dapat menggunakan DotPeek Jetbrain dan mendekompilasi rakitan .NET ke file .cs aktual ke disk Anda. Kemudian saat Anda melihat ini,
Sekarang Anda dapat menelusuri disk Anda ke kode sumber yang Anda dekompilasi menggunakan DotPeek. Pastikan Anda mendekompilasi versi perakitan yang sama dengan yang Anda rujuk dalam proyek Anda. Jika tidak, simbol mungkin tidak cocok dengan nomor baris sumber yang benar.
Sebaliknya, Jika Anda hanya ingin menyembunyikan "Sumber Tidak Ditemukan" ini agar tidak terus-menerus muncul dan Anda tidak peduli untuk memasukkan kode yang tidak ada sumbernya, baca
@Alex Sherman
jawabannya. Anda perlu mencari tahu di assembly mana file yang melanggar itu ada, lalu tambahkan nama assembly itu ke daftar pengecualian.Makanan untuk dipikirkan, saya bukan penggemar Rider over VS. Pengendara masih merupakan sentuhan mentah dan tidak memiliki jumlah gila yang dimiliki VS perkakas bawaan. Namun!! Saya ingin memasangnya secara berdampingan dalam kasus seperti ini di mana saya tahu saya bisa masuk lebih dalam ke dalam gulma.
sumber
Bersihkan solusi sebelum membangun menyelesaikan masalah untuk saya.
Cukup navigasikan dan klik:
Build
->Clean Solution
.Build
->Build Solution (Ctrl + Shift + B)
.sumber
Saya sudah mencoba semua jawaban dari atas dan tidak ada yang berhasil.
Ini menyelesaikannya untuk saya:
Debug
->Delete all Breakpoints
dan itu memecahkan masalah! Begitu banyak hal berbeda yang menyebabkan masalah ini.
sumber
Punya masalah yang sama, tidak ada solusi yang diusulkan di atas yang membantu saya memecahkan masalah. Terjadi di VS 2017. Ketika saya menjalankan proyek di Visual Studio 2019, semuanya berfungsi. Jadi coba jalankan di lingkungan lain. Semoga jawaban ini akan membantu seseorang
sumber
Jika kesalahan berasal dari mencari "nullable.cs" atau beberapa file sumber inti lainnya:
Anda dapat menonaktifkan simbol untuk modul tertentu dengan menggunakan
Debug -> Options -> Debugging -> Symbols
dan kemudian di bagian bawahSpecify Excluded Modules
.Ini berguna untuk kasus-kasus di mana Anda memang ingin menonaktifkan "Just My Code" untuk masuk ke rakitan lain yang Anda miliki PDB-nya. Visual Studio Saya pikir dilengkapi dengan simbol
mscorlib.dll
tetapi tidak menyertakan sumber sehingga kadang-kadang melangkah ke sesuatu akan mencari "nullable.cs" atau file sumber inti lainnya.sumber
Anda dapat menemukan kode sumber di sini untuk diunduh sehingga Anda dapat melakukan debug dengan benar. https://referencesource.microsoft.com/#mscorlib,namespaces
sumber
Saya mendapat kesalahan ini saat memperbarui paket NuGet dalam sebuah proyek, sementara hilang untuk memperbaruinya di proyek lain dari solusi.
Pergi ke Manajer NuGet solusi dan menggunakan fungsi konsolidasi, yang memastikan semua proyek dalam solusi menggunakan versi yang sama, menyelesaikan masalah untuk saya.
sumber
Dalam kasus saya, saya akhirnya mengganti nama kelas. Mungkin mulai bingung dengan modul lain. Setelah saya mengganti namanya, saya bisa masuk.
sumber