Bagaimana cara mengaktifkan pengeditan file dalam mode debug Visual Studio?


144

Apakah ada cara untuk mengaktifkan pengeditan file saat debugging di Visual Studio? Saya telah menghapus centang pada kotak centang "Memerlukan file sumber agar sama persis dengan versi aslinya". Tidak ada bedanya. Saya harus berhenti debug untuk mengedit file. Sangat menyebalkan. Saya mengaktifkan Edit dan Lanjutkan. Hasil yang sama Saya menonaktifkan Edit dan Lanjutkan - Hasil yang sama.


Saya tidak melihat bahwa Anda mengedit pertanyaan Anda. Anda dapat memperbaikinya dengan menginstal ulang cepat.
Secko

12
@Secko Tidak ada yang namanya "instal ulang cepat" ketika kita berbicara tentang Visual Studio ...
Zero3

@ Zero3 Ada dalam waktu saya, sekitar 16 tahun yang lalu, ketika saya menggunakannya sekitar (int) 1999 - (int) 2000. Belum pernah menggunakannya dalam waktu (lama) *.
Secko

Masalah sebenarnya di sini adalah bahwa pengaturan 'Edit dan Lanjutkan' Visual Studio tidak memungkinkan Anda untuk mengedit dan melanjutkan . Sebaliknya, ini adalah fitur aneh yang memungkinkan Anda mengedit kode, lalu benar-benar mengubah kode eksekusi agar sesuai dengan hasil edit Anda, dan mendebug dari sana. Bahkan jika itu berguna, itu jarang berhasil. Seharusnya disebut sesuatu seperti 'edit dan kompilasi ulang dengan cepat'. Switching itu off memungkinkan Anda untuk benar-benar mengedit kode Anda saat masih debugging kode Anda dikompilasi.
MGOwen

Jawaban:


234

Sejauh yang saya tahu Anda dapat menghapus centang pada kotak "Edit dan Lanjutkan".

Alat -> Opsi -> Debugging -> Edit dan Lanjutkan> Aktifkan Edit dan Lanjutkan (hapus centang)


60
Ini adalah solusi bagi saya - Saya tidak tahu mengapa mengecek "Edit dan Lanjutkan" yang memungkinkan saya untuk Mengedit ... tampaknya berlawanan dengan intuisi. Bagaimanapun, saya akan menandai ini sebagai jawabannya.
Sam Schutte

7
Kontra-intuitif, namun, efektif.
Milne

2
Ini bereaksi berbeda jika lapisan bisnis dipecah menjadi proyek terpisah dalam solusi. Sebelum itu terpecah saya bisa mengedit kelas saat debugging tanpa masalah. Sayangnya solusi ini belum terpecahkan untuk saya dalam situasi ini (saya menggunakan VS2013)
Radderz

18
Di Visual Studio 2015, saya menemukan pengaturan ini di bagian bawah Debugging-> General.
Zero3

13
Jika Anda mencoba melakukan ini, tetapi "Aktifkan Edit dan Lanjutkan" diklik, cukup berhenti debug dan kembali ke opsi.
Ravvy

19

Memperluas jawaban Reed yang benar.

Ketika dalam mode debug, mengedit file menggunakan fitur yang dikenal sebagai Edit dan Lanjutkan (biasanya disingkat ENC). Ini memungkinkan pengguna untuk mengubah program mereka ketika sedang berjalan di debugger.

Ketika ENC diaktifkan, pengguna diizinkan untuk melakukan serangkaian pengeditan terbatas pada file mereka. Tindakan selanjutnya yang melanjutkan eksekusi program (F10, F5, dll ...) akan menyebabkan pengeditan diterapkan pada program yang sedang berjalan. Jika ini berhasil, eksekusi program akan dilanjutkan dengan kode baru yang diterapkan.

Debugger tidak mengizinkan pengeditan ke file jika ENC tidak diaktifkan.

Ada beberapa alasan ENC dapat dinonaktifkan di komputer Anda

  • Profil tertentu tidak mengaktifkan ENC secara default dan harus diaktifkan secara eksplisit
  • Anda mungkin menjalankan OS 64 bit dan mengatur aplikasi .Net ke "Any CPU". ENC tidak tersedia pada 64 bit (batasan CLR). Anda harus mengatur aplikasi kembali ke x86 agar ENC berfungsi

8
Bagaimana jika Anda tidak peduli dengan Edit dan Lanjutkan dan hanya ingin kode saat aplikasi sedang berjalan sehingga Anda dapat melihat apa yang perlu dilakukan saat Anda melakukannya? Benar-benar tidak nyata VS akan memaksakan pembatasan buatan ini. Ini tidak seperti itu perlu membaca file sumber saat sedang berjalan. Tidak ada alasan teknis mengapa harus mengunci file sumber. Xcode tidak memiliki masalah membiarkan Anda kode saat aplikasi sedang berjalan. Perubahan itu tidak berlaku sampai proses berikutnya. Apakah benar-benar tidak ada cara untuk melakukan ini di VS?
devios1

1
Jika saya menonaktifkan Edit dan Lanjutkan itu akan membiarkan saya mengedit file .cs saat aplikasi sedang berjalan, tetapi masih mengunci file .xaml. Saya sedang mencari cara untuk menonaktifkan penguncian yang absurd ini sepenuhnya.
devios1

7
Bahkan tidak akan membiarkan saya menambahkan file ke proyek saat aplikasi sedang berjalan! Saya tidak bercanda, 20-30 kali sehari saya mencoba melakukan sesuatu dan VS sepenuhnya mencegahnya. Setelah momen "wtf" singkat, saya menyadari bahwa aplikasi ini sedang melakukan debug dan saya harus menghentikan apa yang saya lakukan, mematikan aplikasi, dan kemudian mencoba lagi. Saya tidak dapat bekerja di bawah kondisi ini dan saya benar-benar kagum orang tidak setuju tentang hal ini. Ini benar-benar mematikan produktivitas saya dan mendorong saya ke atas tembok. Pasti ada cara untuk memperbaikinya!
devios1

1
@ devios1 Sesuatu yang sering saya lakukan hanyalah menjalankan tanpa debugging (ctrl + f5) yang OK selama Anda tidak perlu breakpoints atau apa pun.
binki

@ devios1 Sama. Saya harap seseorang (mungkin saya) akan menemukan waktu untuk menyelesaikan ekstensi ini. github.com/AndreasFurster/pause-edit-and-continue
Paul

8
  • Periksa UN "Aktifkan Edit dan Lanjutkan" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Bangun aplikasi Anda.
  • Menjalankannya.
  • Hentikan.
  • RE cek "Aktifkan Mengedit dan Lanjutkan".
  • Bangun aplikasi Anda.
  • Menjalankannya.
  • Coba edit file sambil debug sekarang.

Ini berhasil untuk saya. Saya percaya itu mungkin beberapa masalah bug atau sinkronisasi dengan Visual Studio 2015.


1
Dear downvoter, adalah praktik yang baik untuk meninggalkan komentar untuk MENGAPA Anda downvoting jawabannya.
Francois Botha

Ini tidak menyelesaikan untuk saya, namun jawaban tertinggi di bawah ini melakukannya.
Kairan

6

Anda harus mengaktifkan Edit dan Lanjutkan .


2
Selain itu, Anda harus berada di breakpoint, atau klik tombol pause (Break All).
McAden

@marcc: Dan banyak hal lain, itulah sebabnya saya menunjuk ke dokumen. Untuk daftar lengkap perubahan yang tidak didukung, lihat bagian "Skenario yang Tidak Didukung" di lokasi ini: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Reed Copsey

4
Seckos (nilai terbaik) bekerja untuk saya (VS2015) dan merupakan kebalikan dari jawaban Anda.
alrts

6

Dari MSDN

Untuk mengaktifkan / menonaktifkan Edit dan Lanjutkan

  • Buka halaman opsi debugging (Alat / Opsi / Debugging). Gulir

  • turun ke Edit dan Lanjutkan kategori. Untuk mengaktifkan, pilih Aktifkan Edit

  • dan Lanjutkan kotak centang. Untuk menonaktifkan, kosongkan kotak centang. Catatan. ...

  • Klik OK.


5

biasanya mengedit file selama debugging dimungkinkan ketika Anda telah mencapai breakpoint (dan hanya itu).

Ada beberapa batasan: -kode baru Anda harus mengkompilasi -Anda tidak dapat mengubah kode dalam fungsi yang berisi ekspresi lambda



2

Jika Anda telah Edit dan Lanjutkan dihidupkan dan Anda menggunakan C # Anda hanya dapat mengedit file jika debugger telah berhenti baik melalui break point atau Anda secara manual masuk ke App melalui "Break All". Anda masih tidak dapat mengedit beberapa file, Kel. file xaml dalam aplikasi WPF, tetapi harus menyelesaikan sebagian besar masalah


1

Jika sumber Anda berasal dari dll yang didekompilasi, perhatikan bahwa dekompiler dapat menambahkan instruksi IgnoreSymbolStoreSequencePoints ke assemblyinfo.cs:

[perakitan: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Baris ini harus dihapus untuk memuat file pdb, membuat edit & melanjutkan pekerjaan.


1

Menghapus centang pada opsi di bawah ini berfungsi untuk saya

Alat> Opsi> Debugging> Umum> Aktifkan Edit dan Lanjutkan

masukkan deskripsi gambar di sini

* Catatan: Di beberapa rekan pengembang sistem, Menambahkan tanda centang ini berhasil.


1

Saya telah mencoba cara ini dan ini Bekerja untuk saya. Pergi ke CSProj atau VbProj File -> Pilih Asp.Net Development Server / IIS Express -> Debuggers-> Aktifkan Edit dan Lanjutkan-> Simpan dan Jalankan.

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.