Как исправить "Точка останова в настоящий момент не будет удалена. Для этого документа не было загружено никаких символов". предупреждение?
Настольное приложение С# в экспресс-версии. Затем работала не 5 секунд спустя.
Я попробовал следующее.
- Убедитесь, что на всех сборках установлены настройки отладки, флаг отладки и полная информация об отладке.
- Удалите все папки bin и obj и все DLL, связанные с проектом, со всей моей машины.
- Воссоздайте проекты, создающие проблему с нуля.
- Reboot.
В решении есть два проекта WinForms. Один из них загружает информацию об отладке, а другой нет. Они оба относятся к сборке, в которой я пытаюсь получить информацию об отладке точно так же, как в файле проекта. Любые идеи?
Я хочу добавить сюда, главным образом для себя, когда вернусь к рассмотрению этого вопроса, что символы не загружаются до загрузки сборки, а сборка не загружается до тех пор, пока она не понадобится. Если точка останова находится в библиотеке, которая используется только в одной функции в вашей основной сборке, символы не будут загружаться (и показывая, что точка останова не будет удалена) до тех пор, пока эта функция не будет вызвана.
Ответы
Ответ 1
Начните отладку, как только вы достигли точки останова или использовали Debug > Break All
, используйте Debug > Windows > Modules
. Вы увидите список всех сборок, загруженных в процесс. Найдите ту, для которой вы хотите получить информацию об отладке. Щелкните его правой кнопкой мыши и выберите "Загрузка информации о символе". Появится диалоговое окно, в котором перечислены все каталоги, в которых он ищет файл .pdb для сборки. Проверьте этот список на фактическое местоположение .pdb. Убедитесь, что он не находит старый.
В обычных проектах сборка и ее файл .pdb всегда должны быть скопированы с помощью IDE в ту же папку, что и ваш .exe. Папка bin\Debug вашего проекта. Убедитесь, что вы удалили один из GAC, если вы играли с ним.
Ответ 2
Сначала попробуйте перестроить свой проект, щелкнув правой кнопкой мыши проект> Перестроить. Если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши проект> очистить)
Если это не сработало, проверьте это:
- Щелкните правой кнопкой мыши ваш проект
- Выберите [Свойства]
- Выберите вкладку [Build]
- Убедитесь, что [Определить постоянную отладки] и [Определить постоянную TRACE] проверены
- Убедитесь, что [Оптимизировать код] не отмечено
- Нажмите кнопку [Дополнительно] в нижней части вкладки "Сборка".
- Убедитесь, что для [Debug Info:] установлено значение [full]
- Нажмите [OK] и перестройте проект ;-)
(шаг 6 генерирует файлы .pdb, это символы отладки)
Ответ 3
Просто попробуйте попробовать - возможно, вы уже пробовали это.
Щелкните правой кнопкой мыши Решение в проводнике решений, нажмите "Чистое решение", это удалит все скомпилированные и временные файлы, связанные с решением.
Сделайте пересоединение решения и попробуйте снова отладить.
У меня также были проблемы с точками останова в нескольких проектах в решении - некоторые скомпилированы как x86, а некоторые - как x64.
Ответ 4
Отключите параметр "Только мой код" в настройках отладки/общего доступа.
Ответ 5
Перекрестно разместив это исправление от Hans K, которое я нашел в подобной теме → ЗДЕСЬ < <:
Щелкните правой кнопкой мыши по решению → Свойства
Посмотрите в разделе Общие свойства → Проект запуска
Выберите несколько проектов запуска
выберите "Начать действие" для проектов, которые нужно отлаживать.
Ответ 6
Выбранный ответ заставил меня исправить мою проблему. Но мне нужно сделать несколько вещей больше:
Даже при выборе "Отладка" в выпадающем меню:
И в проекте Properties > Build:
Visual Studio не загружала символы в конкретный проект. Поэтому в этом раскрывающемся списке я выбираю "Configuration Manager" и вижу, что настройки для моего веб-проекта были неправильными:
Затем я установил это в "Debug" и начал генерировать файл .pdb
.
НО Мне нужно вручную скопировать PDB и DLL и поместить в папку, которую смотрел VS (вот где мне помог выбранный ответ):
Ответ 7
Debug
> Windows
> Modules
, чтобы увидеть, какие модули были загружены, поставил меня в правильном направлении.
В моем случае IIS Express, похоже, загружал другую DLL из временных файлов ASP.NET.
Решение?
- Перейдите к
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
- Удалить все в этом каталоге!
Ответ 8
Я смог исправить ошибку, просто установив опцию в "Attach to Process" на "Автоматически определять тип кода для отладки", как показано на скриншоте.
Просто выполните следующие действия:
- Перейдите в Отладка из строки меню
- Нажмите Присоединить к процессу
- Рядом с параметром Прикрепить к нажмите кнопку Выбрать
- Появится окно Выбрать тип кода
- Теперь выберите параметр Автоматически определить тип кода для отладки и нажмите кнопку OK.
Ответ 9
Иногда, даже если он дает вам эту ошибку, breakpoint
по-прежнему попадает, поэтому просто игнорируйте ошибку. Это происходит довольно часто в Views
MVC web app
.
Ответ 10
Проверьте, не пропал ли ваш .pbd файл в папке bin/Debug. Если после этого перейдите в "Свойства" вашего проекта, выберите "Построить", а затем "Дополнительно" внизу. В появившемся окне выберите "full" в разделе "Debug info". Это была моя проблема и решила ее для меня.
Ответ 11
В моем случае в моих свойствах проекта был проверен "Оптимизировать код". Это заставило VS видеть мою сборку как "не мой код", и, в свою очередь, она не загружала для нее символы.
Решение заключалось в том, чтобы снять этот флажок.
Ответ 12
Просто проверьте, находится ли ваше решение в режиме деблокирования.
Ответ 13
Попробуйте запустить визуальную студию в качестве администратора в окнах.
Ответ 14
В моем случае я пытаюсь отлаживать режим relase. Как только я изменю его на режим отладки. Работает
Ответ 15
Вам нужно включить "Генерировать информацию об отладке" в настройках компилятора
Ответ 16
Мы нашли причину нашей проблемы. Этот код использовал атрибут "CodeBehind" в директиве "Страница" файла .aspx вместо атрибута "CodeFile" (ASP.NET 2.0 и выше). После дней отчаяния простой поиск и замена решили проблему.
Ответ 17
Опция "Начать отладку, Debug + Windows + Modules" не существует в выпуске Microsoft Visual Studio Express 2013.
Снимите флажок "Использовать режим управляемой совместимости" в параметрах инструментов Отладка исправляет это.
Ответ 18
Проверьте раскрывающийся список Solution Configuration
вашего Solution Configuration
. Убедитесь, что вы выбрали Debug
, а не Release
.
Ответ 19
Я попробовал все, что упоминалось выше, но ничего не получилось.
[Очистить решение и проверить файлы PDB и т.д.]
Даже публикация того же решения не решила проблему.
Затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)
Все, что я сделал, это сделать преднамеренное изменение кода и опубликовать решение.
Затем я вернул изменения и снова опубликовал.
Voila [файлы PDB избавлены от злых духов].. Не умное решение, но это действительно сработало..: - |
Ответ 20
Ни один из этих ответов не решил мою проблему. Я попробовал другое, основанное на факте, что проект с остановкой на самом деле не был загруженным проектом. Я нашел, как Ханс Пассант написал, что .dll, где я хочу остановить отладчик и связанные файлы .pdb, скопированные рядом с файлом .exe. У этих файлов была более старая дата, поэтому я думал, что они не обновлены во время выполнения. Я вручную удалил их, Visual Studio создала другую пару и положила эту новую пару рядом с .exe. Теперь работает breakpoins!
Возможно, Visual Studio не может скопировать и ЗАМЕНИТЬ существующие файлы (DLL и .pdb) рядом с .exe, так как там есть другое. Поэтому, если я удаляю вручную, тогда VS может создать новый файл .exe.
Я думаю, что другие изменения (проверки и т.д. - из других ответов) вызвали что-то, и Visual Studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решение.
Я думаю, что основной причиной проблемы является то, что Visual Studio использует другой файл во время выполнения, без файла из проекта, с остановкой.
Возможно, этот ответ поможет кому-то!
Ответ 21
Все, что нужно проверить, чтобы быть ясным: убедитесь, что у вас установлена настройка "Отладка", а не "Отпуск". Вы можете отлаживать проект запуска в режиме "Release", но не ссылочную библиотеку классов.
Ответ 22
Только для Web-приложений (IIS Express):
- Лоток Rightclick IIS Express и закройте IIS.
- Чистое решение
Ответ 23
Это заняло у меня некоторое время другие варианты выше, и по какой-то странной причине отладка перестала работать.
Инструмент → Параметры → Отладка → Общие → (untick) "Требуется исходный файл, чтобы точно соответствовать исходной версии"
Ответ 24
У меня также была та же проблема, что я перестраиваю все решение (включая реферированные проекты) в x86 (или x64)
Хотя я установил все мои проекты на x86 из Configuration Manager (Build-> ConfigManager), некоторые из моих проектов не были установлены в x86.
Итак, просто чтобы щелкнуть правой кнопкой мыши по проекту и следовать
project → properties → Debug Tab, проверьте конфигурацию и платформу.
Ответ 25
Свойства проекта (затем выберите конфигурацию сборки) > Вкладка "Вкладка" > "Дополнительно..." > "Отладочная информация" (раскрывающийся список)
Установите значение "all" или "pdb-only", затем перестройте
Ответ 26
Вместо того, чтобы делать все это просто
Закрыть и снова открыть
решение будет устранять проблему
Ответ 27
У меня была аналогичная проблема, и я сделал следующее: Debug => Options => General => Удалить галочку для "Включить только мой код". Это сработало для меня..
Ответ 28
Отладка ->
Параметры ->
Общие ->
Снимите Enable Just My Code
" Enable Just My Code
"
Это сработало для меня.
Ответ 29
Я интегрировал приложение С# со статической библиотекой, используя VS10, к которой я новичок. Я написал управляемый код dll для их взаимодействия. Я мог бы установить точки останова повсюду, кроме статической библиотеки. Я получил сообщение, описанное выше, - для этого документа не были загружены символы. Я попробовал много из приведенных выше предложений. Я видел, что символы не загружаются. Я, наконец, заметил флажок "Конфигурация Debug", "Включить неуправляемую отладку кода". Это позволило мне установить точки останова в статических функциях lib.
Ответ 30
Я внимательно прочитал все ответы выше, но ни одна из них не решила мою проблему.
В моем случае я составлял библиотеку классов (DLL). Никакие модули, похоже, не загружаются в Debug → Modules, поэтому я не мог даже загрузить символы вручную.
Мое решение состояло в том, чтобы добавить эту строку в мой код:
System.Diagnostics.Debugger.Launch();
Как только этот код будет достигнут, будет инициировано исключение, а .NET Framework отобразит диалоговое окно с запросом Visual Studio (т.е. новый экземпляр VS 2008, новый экземпляр VS 2013 и т.д.), который вы хотите использовать для отладки программы. Вы можете выбрать существующий экземпляр VS с загруженным проектом. Это приложит процесс к вашей сессии VS и загрузит все символы, и теперь вы можете отлаживать ваш проект.
Конечно, компиляция должна быть выполнена с использованием конфигурации Debug, а не Release.