Это поведение находится в решении веб-приложения 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.
Ниже приведен пример объявления метода и локальной переменной, где это поведение происходит. Если вы пройдете через декларации и установите часы для любой из локальных переменных или любых операторов, использующих локальные переменные, вы увидите
'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
UPDATE: я пошел вперед и переформатировал/переделал свой ноутбук и установил VS2013. Проблема больше не появляется.