Отладка в Visual Studio 2010 и VB.NET: немедленный сбой из-за уровня защиты - PullRequest
14 голосов
/ 15 июня 2010

Это происходит довольно часто, чаще в день, когда Visual Studio 2010 , во время отладки, когда я использовал Немедленные команды, такие как:

?NamedVariable

Я получаю следующую ошибку:

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

В этом случае другие функции отладки, похоже, ушли, но я могу установить точки останова, шаг, шаг и т. Д.

Решение - прекратить отладку, очистить и перестроить проект и повторить попытку.

Я занимаюсь разработкой приложения VB.NET для Windows Forms, но это также произошло с проектами VB.NET WPF.У меня никогда не было такого поведения с VS 2008.

Это известная ошибка или это может быть проблема моей среды / установки?У вас есть идеи, как решить эту маленькую, но раздражающую проблему ?

Ответы [ 8 ]

12 голосов
/ 27 октября 2010

Это случается довольно часто со мной тоже.И единственное решение, которое я обнаружил до сих пор:

Решение - остановить отладку, очистить и пересобрать проект и повторить попытку.

Удаление файла suo приведет кнет помощи.И это может произойти где угодно в коде и, похоже, не зависит от самого кода.

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

Я думаю, что это ошибка VisualStudio и что она будет исправлена ​​в скором времени ServicePack.

0 голосов
/ 23 мая 2014

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

Одним из решений является:

Для VS 2008 (может работать с другими версиями)

  1. Откройте VSE-файл VS, щелкнув правой кнопкой мыши и запустив с правами администратора

  2. После открытия VS перейдите в файл решения, загрузите его и затем щелкните правой кнопкой мыши наимя проекта и выберите «свойства»

  3. Перейдите на вкладку «Отладка»

  4. Снимите флажок «Включить процесс размещения Visual Studio»

  5. проверить вашу подпрограмму в ближайшем окне

Второе решение:

  1. Очистить проект

  2. Закрыть

  3. Перезагрузить компьютер

  4. Повторно открыть и «Запуск от имени администратора»

  5. Перейти в «Мой проект» в окне «Решения»

  6. Нажмите «Отладка»

  7. Установите флажок«Включить отладку собственного кода» (если у вас естьдругую версию VS, посмотрите здесь Включить отладку )

  8. Повторно протестируйте подпрограмму в ближайшем окне, а затем закройте и заново откройте проект

  9. Повторите шаги 5 и 6, но на этот раз снимите флажок «Включить отладку собственного кода»

  10. Перестройте решение

И как-то по волшебствутеперь он начал работать.

0 голосов
/ 24 мая 2013

Просто думал, что я добавлю свои 2 цента. Я испытал это с отладкой лямбды в 2012 году. Возьмите этот простой пример.

    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 "))

Помещая точку останова в операторе Return C & A, вы ожидаете, что вы можете исследовать B, поскольку он находится внутри области действия внутри замыкания. Но попробовав это в ближайшем окне, вы получите ошибку 'B' is not declared. It may be inaccessible due to its protection level,. Причина в том, что он не используется в функции Test. Вам нужно использовать переменную где-то внутри тестовой функции, чтобы увидеть ее во время отладки.

0 голосов
/ 20 января 2012

Я не мог наблюдать ни за одним из своих элементов управления / переменных. Первое время создание новой конфигурации добилось цели, но «сегодня» у меня была та же проблема, сводившая меня с ума на несколько часов… Все сводится к «Отладке -Windows - Проверка модулей, если загружено правильное расположение файла pdb / файла pdb, у меня была ссылка на запутанную папку, и я подозреваю, что по этой причине я не мог смотреть / просматривать реквизиты и переменные. Я щелкнул правой кнопкой мыши строку проблемыи попытался направить его в нужную папку / файл pdb, но затем я получил: Соответствующий файл символов не был найден в этой папке

Я удалил все папки сборки в проводнике, перестроил и указал мой файл XAP 'Отладка- Windows - Модули - Загрузить символы 'в нужный файл pdb ...

С уважением,

Майк

0 голосов
/ 10 ноября 2011

Эта проблема связана с определением объекта в <formname>.aspx.desginer.vb (где <formname> - это название вашей формы).Чтобы исправить это, попробуйте ...

На вкладке обозревателя решений, расположенной справа, нажмите 2-ю кнопку (показать все файлы).Спуститесь к и разверните его, чтобы увидеть подфайлы.Там должно быть <formname>.aspx.desginer.vb.Откройте <formname>.aspx.desginer.vb, и вы увидите определение для всех объектов формы, например Protected WithEvents submitButton As Global.System.Web.UI.WebControls.Button.Добавьте определение для вашего объекта.

0 голосов
/ 26 августа 2011

Я столкнулся с этим в одном из моих классов, и, похоже, это был только один метод в классе.

Я пытался ...

  • Очистка и восстановление
  • Удаление файла suo
  • Создание файла оскорбительного класса
  • Восстановление Visual Studio (2010 SP1)

Ничего из этого не помогло.

Ни один из двух участвующих проектов не использовал версию Client Profile версии 4.0 .NET Framework.

Для меня сработало то, что я обнаружил случайно, когда я проходил через другой метод, который вызывал нарушителя.метод.Когда я вошел в этот метод, я снова мог видеть свои переменные через окно наблюдения, непосредственное окно и т. Д.

Не уверен, почему это произошло, я думаю, что это просто ошибка, но это сработало для меня, поэтому ядумал, что я передам это.

0 голосов
/ 27 мая 2011

Обратите внимание, что это будет происходить внутри некоторых блоков кода «С переменной ...».

В этом случае замените «С переменной» на временную переменную, и проблема может быть устранена.

0 голосов
/ 15 июня 2010

Попробуйте убедиться, что файл кода, содержащий переменную, отображается и курсор находится в той же области видимости переменной.

Попробуйте удалить файл пользовательских настроек решения (suo).Вы потеряете настройки, такие как закладки, точки останова и другие настройки решения пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...