'var_name' не объявлено. Он может быть недоступен из-за уровня защиты ». в режиме отладки

Это происходит в решении веб-приложения vb.net с несколькими проектами библиотек классов, на которые ссылается веб-приложение.

Код компилируется, но в режиме отладки некоторые функции / подпрограммы в ссылочных библиотеках классов имеют локальные переменные, которые отображают

'Var_name' не объявлено Может быть недоступен из-за уровня защиты.

в часах и ближайших окнах.

Mouse_over intellisense не работает с этими локальными переменными.

В некоторых под / функциях значения переменных доступны, пока я не перейду вTry..Catch

Все переменные, переданные в Sub / Function, доступны. Переменные, определенные на уровне класса, также доступны.

Такое поведение является новым в коде, который был в решении в течение многих лет. Область действия подпрограмм и функций не изменилась (они являются общедоступными).

Это также не соответствует. В данном проекте библиотеки классов публичные функции / подпрограммы в одном классе будут иметь локальные переменные, где вы можете видеть их значения, в то время как другие отображают сообщение, показанное выше.

Вещи, которые я уже пробовал:

* Clean/Rebuild Solution
* Turn off Code optimizations (it has always been turned off in Debug mode)
* Enable the "Show all members for non-user objects in variables windows (Visual Studio)" option in the Debugging options.
* Import default settings for VS2012
* Update VS2012 to latest version (Update 4)
* Install VS2013 and open solution (behavior occurs there as well)
* Clear AppData cache
* In Advanced Compiler Settings, set 'Generate debug info' to both Full and pdb-only
* Remove local copy of solution and get the solution again from TFS
* All projects in the solution are set to Debug

У меня есть несколько решений в TFS, и это единственное решение, которое показывает такое поведение.

У меня был коллега, получивший копию того же решения в TFS, и его поведение НЕ встречается в его локальной копии.

Такое поведение не произошло в VS2010.

Вот пример объявления метода и локальной переменной, где это происходит. Если вы пройдете через декларации и установите watch для любой из локальных переменных или любых операторов, использующих локальные переменные, вы увидите

'Var_name' не объявлено Может быть недоступен из-за уровня защиты.

как значение переменной в часах / быстрых часах / непосредственных окнах

Utility1.vb
Imports System.Web

Imports System.Text

Imports SPBO

Public Class Utility1

Public oNav_inc As New Navigation_INC
'===========================================================================
'Utility1.vb
'===========================================================================
    Public Sub UTIL_EstablishActivityContext(ByRef Response As HttpResponse, ByRef page As Page, ByRef oGlobal_inc As GlobalVariables_INC)

        Dim oActivity As ENC2.Web.ActivityContext
        Dim oMHardUBO As MHUBO
        Dim oPUBO As PUBO
        Dim asGroup As String = ""
        Dim sGroup As String = ""
        Dim bActive As Boolean
        Dim g_oUserAccountBO As UserAccountBO
        Dim sImplementation As String = ""
        Dim rs As DataSet
        Dim sQuery As String
        Dim rsUser As DataSet
        Dim sUserGroups As Object
        Dim iLoop As Integer
        Dim bInternal As Boolean
        Dim g_bInternalUser As Boolean

        g_bInternalUser = False

        'rest of code

    End Sub

End Class

ОБНОВЛЕНИЕ: я переформатировал / переформатировал свой ноутбук и установил VS2013. Проблема больше не появляется.

Ответы на вопрос(4)

Ваш ответ на вопрос