2010-06-15 33 views
14

Nó xảy ra khá thường xuyên, nhiều lần mỗi ngày, rằng với Visual Studio 2010, trong quá trình gỡ lỗi, khi tôi sử dụng ngay lệnh như:Debugging với Visual Studio 2010 và VB.NET: Ngay lập tức thất bại do mức độ bảo vệ

? NamedVariable

tôi nhận được lỗi sau:

'NamedVariable' is not declared. It may be inaccessible due to its protection level.

Trong trường hợp này cũng tính năng debug khác dường như biến mất, nhưng tôi có thể đặt breakpoint, bước vào, bước qua vv

Giải pháp là dừng gỡ lỗi, làm sạch và xây dựng lại dự án và thử lại.

Tôi đang phát triển một ứng dụng Windows VB.NET Forms, nhưng nó cũng đã xảy ra với các dự án VB.NET WPF. Tôi chưa bao giờ có hành vi này với VS 2008.

Đây có phải là lỗi đã biết hoặc có thể là vấn đề môi trường/cài đặt của tôi không? Bạn có bất kỳ ý tưởng nào để giải quyết vấn đề này, nhưng gây phiền toái vấn đề?

+0

Tôi không thể nói chắc chắn, nhưng có vẻ như một số thời gian vấn đề này xảy ra khi gỡ lỗi biểu thức LINQ hoặc Lambda. Đã có ai nhận ra điều này chưa? – Airn5475

Trả lời

12

Điều này cũng xảy ra thường xuyên với tôi. Và giải pháp duy nhất tôi phát hiện ra cho đến bây giờ là:

The solution is stop debugging, clean and rebuild the project, and retry.

Xóa tệp suo sẽ không giúp ích. Và nó có thể xảy ra bất cứ nơi nào trong mã và dường như không phụ thuộc vào chính mã đó.

Tôi nghĩ rằng điều này đang xảy ra chủ yếu sau khi tôi sửa đổi một số mã trong khi gỡ lỗi hoặc sau nhiều thay đổi nhỏ và xây dựng trước khi gỡ lỗi. Có thể thông tin gỡ lỗi bị "mất" hoặc "không được xác nhận" trong quá trình xây dựng một phần.

Tôi nghĩ rằng đó là lỗi VisualStudio và nó sẽ được sửa trong một ServicePack sớm hy vọng.

+0

Vì vậy, sau khi SP1 được ra và cài đặt, có vẻ như với tôi, rằng lỗi này vẫn còn đó. Xảy ra không thường xuyên như vậy nữa, nhưng vẫn xảy ra theo thời gian. – WizzardsApprentice

0

Hãy thử, đảm bảo tệp mã chứa biến được hiển thị và con trỏ nằm trong cùng phạm vi của biến.

Thử, xóa tệp tùy chọn người dùng của giải pháp (ví dụ). Bạn sẽ mất cài đặt của mình, chẳng hạn như dấu trang, điểm ngắt và cài đặt giải pháp người dùng khác.

+0

Chỉ thử xóa suo sau khi tất cả các tùy chọn khác không thành công vì đó là một cú kéo lớn để đặt lại tất cả cài đặt của bạn. –

0

Lưu ý rằng điều này sẽ có xu hướng xảy ra bên trong một số khối "Có biến ..." của mã.

Trong trường hợp này, thay thế "Có biến" bằng biến tạm thời và sự cố có thể rõ ràng.

0

Tôi gặp phải điều này trong một trong các lớp học của mình và dường như chỉ có một phương pháp trong lớp học.

Tôi đã thử ...

  • sạch & xây dựng lại
  • Xóa file Suo
  • Tái tạo tập tin lớp tấn công
  • Sửa chữa Visual Studio (2010 SP1)

Không ai trong số này đã giúp.

Cả hai dự án đều không sử dụng phiên bản Hồ sơ khách hàng của Khuôn khổ .NET 4.0.

Điều gì làm việc cho tôi, điều mà tôi đã tìm thấy một cách tình cờ, là khi tôi bước qua một phương pháp khác, được gọi là phương pháp xúc phạm. Khi tôi bước vào phương pháp đó, tôi có thể nhìn thấy các biến của mình một lần nữa qua cửa sổ xem, cửa sổ ngay lập tức, v.v.

Không chắc chắn tại sao điều này xảy ra, tôi nghĩ đó chỉ là một lỗi, nhưng điều này làm việc cho tôi sẽ vượt qua nó cùng.

+1

Tôi đã gặp sự cố này một lần nữa với một tệp lớp duy nhất trong thư viện lớp. Bước vào phương pháp sẽ không giải quyết được vấn đề như tôi đã đề cập ở trên. Tôi bắt đầu sử dụng #IF DEBUG và Debug.Writeline để gỡ lỗi lớp. Sau đó, ngẫu nhiên, phần # DE DEBUG thậm chí sẽ không gỡ lỗi. Sau khi làm sạch và xây dựng lại, nó đã trở lại ... và mang lại khả năng để xem các giá trị biến! Vấn đề này là VERY FLAKY. Tôi không thể tái tạo nó và tôi không biết nguyên nhân gây ra nó là gì. Vô cùng bực bội! – Airn5475

-2

Sự cố này liên quan đến định nghĩa đối tượng trong <formname>.aspx.desginer.vb (trong đó <formname> là tên biểu mẫu của bạn). Để sửa lỗi này, hãy thử ...

Trên tab trình khám phá giải pháp được tìm thấy ở phía bên tay phải, hãy nhấp vào nút thứ 2 (hiển thị tất cả các tệp). Đi xuống và mở rộng nó để xem các subfiles. Phải có một số <formname>.aspx.desginer.vb. Mở <formname>.aspx.desginer.vb và bạn sẽ thấy định nghĩa cho tất cả đối tượng biểu mẫu chẳng hạn như Protected WithEvents submitButton As Global.System.Web.UI.WebControls.Button. Thêm định nghĩa cho đối tượng của bạn.

0

Tôi không thể xem bất kỳ điều khiển/biến nào của tôi .. Lần đầu tiên tạo cấu hình mới đã thực hiện thủ thuật nhưng 'hôm nay' tôi gặp vấn đề tương tự, đã khiến tôi phát điên trong nhiều giờ .. 'Debug - Windows - Modules' Kiểm tra xem vị trí tệp pdb/pdb đúng của tệp có được tải hay không, tôi đang đề cập đến một thư mục bị xáo trộn và tôi nghi ngờ đó là lý do tôi không thể xem/xem các đạo cụ và vars .. I bên phải nhấp vào dòng vấn đề và cố gắng hướng nó vào đúng thư mục/tệp pdb nhưng sau đó tôi đã nhận: Không tìm thấy tệp biểu tượng phù hợp trong thư mục này

Tôi đã xóa tất cả thư mục xây dựng trong trình khám phá, lại xây dựng và chỉ XAP của tôi tập tin 'Debug - Windows - Modules - Tải ký tự' vào file pdb đúng ...

Kính trọng,

Mike

0

Chỉ cần nghĩ rằng tôi thêm 2 cent của tôi. Tôi đã trải nghiệm điều này với năm 2012 gỡ lỗi một lambda. Lấy ví dụ đơn giản này.

Dim A As String = "A" 
    Dim B As String = "B" 

    Dim Test = Function(C As String) As String 
        Return C & A 
       End Function 

    Debug.Print(Test("Test ")) 

Đặt điểm ngắt trên tuyên bố Return C & A, bạn có thể kiểm tra B vì phạm vi nằm trong phạm vi đóng. Nhưng hãy thử điều này trong cửa sổ ngay lập tức, bạn sẽ gặp lỗi 'B' is not declared. It may be inaccessible due to its protection level,. Lý do là vì nó không được sử dụng trong hàm Test. Bạn cần phải thực sự sử dụng biến ở đâu đó bên trong hàm kiểm tra để có thể nhìn thấy nó trong khi gỡ lỗi.

0

Tôi cũng gặp vấn đề tương tự. Tôi đang cố gắng để kiểm tra một thói quen phụ trong cửa sổ ngay lập tức và tiếp tục nhận được lỗi này.

Một giải pháp là:

Đối với VS 2008 (có thể làm việc với các phiên bản khác)

  1. mở VS tập tin exe, bằng cách click chuột phải và chạy as Administrator

  2. Khi VS là mở ra tệp giải pháp của bạn, tải tệp và sau đó nhấp chuột phải vào tên dự án và chọn 'thuộc tính'

  3. Đi tới 'Gỡ lỗi 'Tab

  4. Bỏ chọn 'Enable các visual studio quá trình lưu trữ'

  5. kiểm tra sub của bạn thường xuyên trong cửa sổ ngay lập tức

giải pháp thứ hai là:

  1. sạch dự án

  2. Đóng cửa sổ

  3. Khởi động lại máy tính

  4. Mở lại và 'Run as Administrator'

  5. Đến 'dự án của tôi' trong cửa sổ Solutions

  6. Nhấp vào 'Debug'

  7. Chọn tùy chọn 'Bật gỡ lỗi mã gốc' (nếu bạn có phiên bản khác của VS, hãy xem tại đây Enable Debugging)

  8. thói quen tiểu Kiểm tra lại trong cửa sổ trước mắt và dự án sau đó đóng và mở lại

  9. Lặp lại bước 5 và 6 nhưng lần này untick 'Enable mã nguồn gốc gỡ lỗi'

  10. Rebuild giải pháp

Và poof bằng phép thuật bằng cách nào đó nó bây giờ bắt đầu làm việc.

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