2008-09-16 67 views
9

Tôi có VS2005 và hiện tôi đang cố gắng gỡ lỗi ứng dụng web ASP.net. Tôi muốn thay đổi một số mã xung quanh trong mã phía sau tệp, nhưng mỗi lần tôi dừng lại ở điểm ngắt và cố gắng chỉnh sửa nội dung nào đó, tôi nhận được thông báo lỗi sau: "Thay đổi không được phép khi trình gỡ lỗi đã được đính kèm với quá trình đang chạy hoặc mã đang được gỡ lỗi được tối ưu hóa. "Chỉnh sửa mã nguồn khi gỡ lỗi

Tôi chắc rằng tôi đã bật tất cả tùy chọn "Chỉnh sửa và tiếp tục". Bất kỳ đề xuất?

Trả lời

6

Ứng dụng thực sự đang chạy khỏi phiên bản đã biên dịch mã của bạn. Nếu bạn sửa đổi nó, nó sẽ phải biên dịch lại nó để các thay đổi của bạn hoạt động, có nghĩa là nó sẽ cần phải trao đổi phiên bản đang chạy cho phiên bản được biên dịch mới. Đây là một vấn đề khá khó khăn - đó là lý do tại sao tôi nghĩ Microsoft đã làm cho nó không thể làm được. Đó là nhiều hơn để bảo vệ bạn khỏi suy nghĩ một số thay đổi đã được thực hiện khi họ thực sự không.

+0

> Đó là nhiều hơn để bảo vệ bạn khỏi suy nghĩ một số thay đổi đã được thực hiện khi họ thực sự không. Điều này tránh được bằng cách hiển thị thông báo rằng mã nguồn được hiển thị khác với mã nguồn được biên dịch. Tôi dường như nhớ rằng VS được sử dụng để làm điều này và các sản phẩm khác làm điều đó là tốt. – mayu

1

Bạn được phép thực hiện thay đổi đối với tệp *.aspx trong khi tệp chạy và bạn có thể nhấn làm mới trên cá thể web của mình để xem những thay đổi đó ngay lập tức. Tuy nhiên, bạn không thể thực hiện thay đổi đối với các tệp *.cs/*.vb hoặc *.designer.cs/*.designer.vb trong khi chương trình chạy.

16

Điều này có vẻ không trực quan, nhưng hãy chỉnh sửa và tiếp tục.

Có thể có một cách khác "cho phép tôi chỉnh sửa tệp chỉ đọc" hoặc "cho phép tôi chỉnh sửa ngay cả khi tôi đang gỡ lỗi ... không thực sự!" đặt ở đâu đó, nhưng tôi không có năm 2005 để kiểm tra.

Năm 2008, tắt chỉnh sửa và tiếp tục và bạn có thể chỉnh sửa trong khi nó đang chạy (nhưng những thay đổi đó không appplied.)

Nếu bạn thực sự muốn sử dụng chỉnh sửa và tiếp tục, bạn cũng phải kích hoạt nó cho dự án, trên tab web của cài đặt dự án.

+1

Cảm ơn bạn rất nhiều! – youwhut

2

Đối với Asp.net, có thể nghĩ đến hai loại 'chỉnh sửa và tiếp tục'.

Một là chỉnh sửa cổ điển và làm mới trình duyệt. Điều này làm việc vì trình duyệt làm mới biên dịch lại mọi thứ ngoại trừ mã biên dịch trước các tệp. Điều này không được gọi là Chỉnh sửa và Tiếp tục, mặc dù trong thực tế nó cung cấp một hiệu ứng tương tự. Trong chế độ này, bạn không thể thay đổi mã đằng sau tệp, vì chúng được biên dịch trước và triển khai, nhưng bạn có thể thay đổi bất kỳ thứ gì khác.

Chế độ khác cho phép bạn thay đổi mã được biên dịch trước các tệp nhưng không có gì khác ... (đây là chế độ mà Chris Bilson đề cập cần được đặt trên thuộc tính dự án cho ASP.Net). Trong trường hợp này, bạn đang sử dụng tính năng Chỉnh sửa và Tiếp tục của trình gỡ lỗi, điều này biết rất ít về ASP.net. Trình gỡ lỗi chỉ nhìn thấy một assembly được nạp .Net và có thể sửa đổi nó khi dừng lại trong trình gỡ rối vì có một dự án trong giải pháp mà yêu cầu để biết cách xây dựng nó. Trong trường hợp này, bạn sẽ bị ngăn không cho sửa đổi những thứ sẽ làm rối loạn phiên gỡ rối. Tuy nhiên, phương pháp này là cách duy nhất để thay đổi mã trong khi nó đang chạy thay vì yêu cầu làm mới trình duyệt.

+0

Thats tuyệt vời, thiết lập tab Enable và Continue on web project đã giải quyết được vấn đề của tôi. – Greg

-1

Kiểm tra xem bạn có đang ở chế độ phát hành không. Trong chế độ phát hành, bạn không thể chỉnh sửa mã của mình khi đang gỡ lỗi.Chỉ cần thay đổi chế độ để gỡ lỗi

1

tôi tìm kiếm này trên Visual Studio 2008 WAP (Dự án Ứng dụng Web) và nó đã cho tôi hai ngày để tìm ra giải pháp, vì vậy ở đây nó là với hy vọng nó giúp người khác:

Có hai vị trí phải được kiểm tra, một trong các công cụ-tùy chọn-gỡ lỗi-Chỉnh sửa và tiếp tục cho phép chỉnh sửa và tiếp tục, nút còn lại là nhấp chuột phải vào dự án-thuộc tính-Web-Bật chỉnh sửa và tiếp tục

+0

Cảm ơn Rob. Tôi luôn quên nơi thứ hai này. – dustinson

Các vấn đề liên quan