Làm cách nào để kích hoạt chỉnh sửa tệp trong chế độ gỡ lỗi của Visual Studio?


144

Có cách nào để kích hoạt chỉnh sửa tệp trong khi gỡ lỗi trong Visual Studio không? Tôi đã bỏ chọn hộp kiểm "Yêu cầu tệp nguồn khớp chính xác với phiên bản gốc". Nó không có Gì Thay đổi. Tôi phải dừng gỡ lỗi để chỉnh sửa tập tin. Rất phiền phức. Tôi đã bật Chỉnh sửa và Tiếp tục. Cùng một kết quả. Tôi đã tắt Chỉnh sửa và Tiếp tục - Kết quả tương tự.


Tôi không thấy rằng bạn đã chỉnh sửa câu hỏi của bạn. Bạn có thể khắc phục điều đó bằng cách cài đặt lại nhanh chóng.
Secko

12
@Secko Không có thứ gọi là "cài đặt lại nhanh" khi chúng ta đang nói về Visual Studio ...
Zero3

@ Zero3 Có thời tôi, khoảng 16 năm trước, khi tôi đang sử dụng nó vào khoảng (int) 1999 - (int) 2000. Không sử dụng nó trong một thời gian (dài) *.
Secko

Vấn đề thực sự ở đây là cài đặt 'Chỉnh sửa và Tiếp tục' của Visual Studio không cho phép bạn chỉnh sửa và tiếp tục . Thay vào đó, đó là một tính năng kỳ lạ cho phép bạn chỉnh sửa mã, sau đó thực sự thay đổi mã thực thi để phù hợp với chỉnh sửa của bạn và gỡ lỗi từ đó. Ngay cả khi điều đó là hữu ích, nó hiếm khi hoạt động. Nó nên được gọi là một cái gì đó như 'chỉnh sửa và biên dịch lại nhanh chóng'. Tắt nó cho phép bạn thực sự chỉnh sửa mã của mình trong khi vẫn gỡ lỗi mã bạn đã biên dịch.
MGOwen

Câu trả lời:


234

Theo tôi biết, bạn có thể bỏ chọn hộp kiểm "Chỉnh sửa và tiếp tục".

Công cụ -> Tùy chọn -> Gỡ lỗi -> Chỉnh sửa và Tiếp tục> Bật Chỉnh sửa và Tiếp tục (bỏ chọn)


60
Đây là giải pháp cho tôi - Tôi không biết tại sao việc kiểm tra "Chỉnh sửa và tiếp tục" của Liên Hợp Quốc lại cho phép tôi chỉnh sửa ... có vẻ phản trực giác. Dù sao, tôi sẽ đánh dấu đây là câu trả lời.
Sam Schutte

7
Phản trực giác, nhưng, hiệu quả.
Milne

2
Điều này phản ứng khác nhau nếu lớp kinh doanh được chia thành một dự án riêng trong giải pháp. Trước khi nó được phân chia, tôi có thể chỉnh sửa các lớp trong khi gỡ lỗi mà không gặp vấn đề gì. Thật không may, giải pháp này đã không giải quyết được cho tôi trong tình huống này (đang sử dụng VS2013)
Radderz

18
Trong Visual Studio 2015, tôi đã tìm thấy cài đặt này ở cuối Debugging-> General.
Zero3

13
Nếu bạn đang cố gắng thực hiện việc này, nhưng "Bật chỉnh sửa và tiếp tục" bị mờ đi, chỉ cần dừng gỡ lỗi và quay lại các tùy chọn.
Ravvy

19

Mở rộng câu trả lời đúng của Sậy.

Khi ở chế độ gỡ lỗi, chỉnh sửa một tệp đang sử dụng một tính năng được gọi là Chỉnh sửa và Tiếp tục (thường được viết tắt là ENC). Điều này cho phép người dùng thay đổi chương trình của họ vì nó đang chạy trong trình gỡ lỗi.

Khi ENC được bật, người dùng được phép thực hiện một bộ chỉnh sửa giới hạn trên tệp của mình. Hành động tiếp theo tiếp tục thực hiện chương trình (F10, F5, v.v.) sẽ khiến các chỉnh sửa được áp dụng cho chương trình đang chạy. Nếu điều này thành công, việc thực hiện chương trình sẽ tiếp tục với mã mới được áp dụng.

Trình gỡ lỗi không cho phép chỉnh sửa tệp nếu ENC không được bật.

Có một vài lý do ENC có thể bị tắt trên máy tính của bạn

  • Một số cấu hình nhất định không bật ENC theo mặc định và nó phải được bật rõ ràng
  • Bạn có thể đang chạy trên HĐH 64 bit và đặt ứng dụng .Net của bạn thành "Bất kỳ CPU". ENC không khả dụng trên 64 bit (giới hạn CLR). Bạn sẽ phải đặt ứng dụng trở lại x86 để ENC hoạt động

8
Điều gì sẽ xảy ra nếu bạn không quan tâm đến Chỉnh sửa và Tiếp tục và chỉ muốn viết mã trong khi ứng dụng đang chạy để bạn có thể thấy những gì cần phải làm trong khi bạn đang làm điều đó? Nó hoàn toàn không thật VS sẽ áp đặt hạn chế nhân tạo này. Nó không giống như nó cần đọc các tệp nguồn trong khi nó đang chạy. Không có lý do kỹ thuật tại sao nó phải khóa các tệp nguồn. Xcode không có vấn đề gì khi cho phép bạn viết mã trong khi ứng dụng đang chạy. Những thay đổi chỉ không áp dụng cho đến lần chạy tiếp theo. Có thực sự không có cách nào để làm điều này trong VS?
devios1

1
Nếu tôi tắt Chỉnh sửa và Tiếp tục, nó sẽ cho phép tôi chỉnh sửa các tệp .cs trong khi ứng dụng đang chạy, nhưng nó vẫn khóa các tệp .xaml. Tôi đang tìm cách để vô hiệu hóa khóa hoàn toàn vô lý này.
devios1

7
Nó thậm chí sẽ không cho phép tôi thêm một tệp vào dự án trong khi ứng dụng đang chạy! Tôi không đùa bạn, 20-30 lần một ngày tôi cố gắng làm điều gì đó và VS hoàn toàn ngăn chặn nó. Sau một khoảnh khắc "wtf" ngắn ngủi, tôi nhận ra ứng dụng đang gỡ lỗi và tôi phải dừng những gì tôi đang làm, giết ứng dụng và sau đó đánh lừa nó. Tôi không thể làm việc trong những điều kiện này và mọi người thực sự ngạc nhiên về việc này. Điều này thực sự giết chết năng suất của tôi và đẩy tôi lên tường. Phải có một cách để khắc phục điều này!
devios1

1
@ devios1 Một cái gì đó tôi thường làm chỉ là chạy mà không cần gỡ lỗi (ctrl + f5), miễn là bạn không cần điểm dừng hoặc bất cứ điều gì.
binki

@ devios1 Tương tự. Tôi hy vọng ai đó (có thể là tôi) sẽ tìm thấy thời gian để hoàn thành phần mở rộng này. github.com/AndreasFurster/pause-edit-and-continue
Paul

8
  • Kiểm tra của Liên Hợp Quốc "Kích hoạt chỉnh sửa và tiếp tục" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Xây dựng ứng dụng của bạn.
  • Chạy nó
  • Dừng lại đi.
  • RE kiểm "Enable Edit, Continue".
  • Xây dựng ứng dụng của bạn.
  • Chạy nó
  • Hãy thử chỉnh sửa các tập tin trong khi gỡ lỗi ngay bây giờ.

Điều này làm việc cho tôi. Tôi tin rằng đây có thể là một số lỗi hoặc sự cố đồng bộ hóa với Visual Studio 2015.


1
Bạn thân mến, thật tốt khi để lại một bình luận cho lý do TẠI SAO bạn hạ thấp câu trả lời.
Francois Botha

Điều này không giải quyết được cho tôi, tuy nhiên câu trả lời được bình chọn cao nhất dưới đây đã làm.
Kairan

6

Bạn cần kích hoạt Chỉnh sửa và Tiếp tục .


2
Ngoài ra, bạn cần ở điểm dừng hoặc nhấp vào nút tạm dừng (Break All).
McAden

@marcc: Và nhiều thứ khác, đó là lý do tại sao tôi chỉ vào các tài liệu. Để biết danh sách đầy đủ các thay đổi không được hỗ trợ, hãy xem phần "Kịch bản không được hỗ trợ" tại vị trí này: msdn.microsoft.com/en-us/l Library / ms164927% 28VS.80% 29.aspx
Reed Copsey

4
Câu trả lời của Seckos (được đánh giá tốt nhất) có hiệu quả với tôi (VS2015) và hoàn toàn ngược lại với câu trả lời của bạn.
alrts

6

Từ MSDN

Để bật / tắt Chỉnh sửa và Tiếp tục

  • Mở trang tùy chọn gỡ lỗi (Công cụ / Tùy chọn / Gỡ lỗi). Cuộn

  • xuống mục Chỉnh sửa và Tiếp tục. Để bật, chọn Bật Chỉnh sửa

  • và Tiếp tục chọn hộp kiểm. Để vô hiệu hóa, xóa hộp kiểm. Ghi chú. ...

  • Nhấn OK.


5

thông thường có thể chỉnh sửa một tệp trong quá trình gỡ lỗi khi bạn đạt điểm dừng (và chỉ sau đó).

Mặc dù có một số hạn chế: - mã mới của bạn phải biên dịch - bạn không thể thay đổi mã trong hàm chứa biểu thức lambda


4

Đối với tôi liên kết này Vô hiệu hóa IntelliTrace hoạt động.
Đi đến

Công cụ> Tùy chọn> IntelliTrace> (bỏ chọn) Kích hoạt IntelliTrace

Hoặc Gỡ lỗi> Tùy chọn> IntelliTrace> (bỏ chọn) Kích hoạt IntelliTrace

nhập mô tả hình ảnh ở đây


2

Nếu bạn đã Chỉnh sửa và Tiếp tục bật và bạn đang sử dụng C #, bạn chỉ có thể chỉnh sửa tệp nếu trình gỡ lỗi đã dừng thông qua điểm dừng hoặc bạn xâm nhập vào Ứng dụng thông qua "Break All". Bạn vẫn không thể chỉnh sửa một số tệp, Ex. tập tin xaml trong một ứng dụng WPF, nhưng nó sẽ giải quyết được hầu hết các vấn đề.


1

Nếu nguồn gốc của bạn từ một dll được dịch ngược, lưu ý rằng trình dịch ngược có thể thêm một lệnh IgnoreSymbolStoreSequencePoints vào assemblyinfo.cs:

[lắp ráp: Debuggable (DebuggableAttribution.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Dòng này phải được xóa để tải tệp pdb, thực hiện chỉnh sửa và tiếp tục công việc.


1

Loại bỏ đánh dấu ở bên dưới tùy chọn làm việc cho tôi

Công cụ> Tùy chọn> Gỡ lỗi> Chung> Bật Chỉnh sửa và Tiếp tục

nhập mô tả hình ảnh ở đây

* Lưu ý: Tại một số hệ thống nhà phát triển đồng nghiệp, việc thêm dấu kiểm này đã thực hiện thủ thuật.


1

Tôi đã thử cách này và nó làm việc cho tôi. Truy cập tệp CSProj hoặc VbProj -> Chọn Asp.Net Development Server / IIS Express -> Debuggers-> Bật Chỉnh sửa và tiếp tục-> Lưu và chạy.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.