Как исправить "точка останова в настоящее время не будет поражена. Символы для этого документа не загружены.- предупреждение?
настольное приложение C# в express edition. Затем работал не работал 5 секунд.
Я попробовал следующее.
- убедитесь, что конфигурация отладки, флаг отладки и полная отладочная информация установлены на всех сборках.
- удалить все папки bin и obj и все библиотеки DLL, связанные с проектом со всей моей машины.
- воссоздать проекты, вызывающие проблему с нуля.
- перезагрузка.
У меня есть два WinForms проекты в решении. Один из них загружает отладочную информацию, другой-нет. Они оба относятся к сборке, на которую я пытаюсь получить отладочную информацию точно так же в файле проекта. Есть идеи?
Я хочу добавить здесь, в основном для себя, когда я вернусь, чтобы рассмотреть этот вопрос, что символы не загружаются до загрузки сборки, и сборка не загружается до тех пор, пока она не понадобится. Если точка останова находится в библиотеке, которая используется только в одной функции в main сборка, символы не будут загружены (и он покажет точку останова как не попадает), пока эта функция не будет вызвана.
30 ответов
начать отладку, как только вы прибыли в точку останова или использовать Debug > Break All
используйте Debug > Windows > Modules
. Вы увидите список всех сборок, загруженных в процесс. Найдите тот, для которого вы хотите получить отладочную информацию. Щелкните его правой кнопкой мыши и выберите Информация о загрузке символа. Вы получите диалоговое окно, в котором перечислены все каталоги, в которых он искал .pdb-файл для сборки. Сверьте этот список с фактическим .расположение ПДБ. Убедитесь, что он не найдет старого.
в нормальных проекты, сборка и ее .pdb-файл всегда должен быть скопирован IDE в ту же папку, что и ваш .исполняемый. Папка bin\Debug вашего проекта. Убедитесь, что вы удалили один из GAC, если Вы играли с ним.
сначала попробуйте перестроить проект, щелкнув правой кнопкой мыши проект > перестроить Если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши на проекте > очистить)
Если это не сработало, проверьте это:
- Правой Кнопкой Мыши ваш проект
- выберите [свойства]
- выберите [Build] tab
- убедится [определить константу debug] и [определение Константа трассировки] проверен
- выберите [дополнительно] внизу построить новые
- убедитесь в том, что [Отладочная Информация:] установлено значение [полный]
- клик [OK] и восстановить этот проект ;-)
(Шаг 6 генерирует .pdb файлы, это отладочные символы)
просто что - то простое, чтобы попробовать-вы, возможно, уже пробовали. Щелкните правой кнопкой мыши решение в обозревателе решений, нажмите кнопку "очистить решение", это удаляет все скомпилированные и временные файлы, связанные с решением.
выполните перестроение решения и повторите попытку отладки.
У меня также были проблемы с несколькими проектами точек останова в решении-некоторые скомпилированы как x86, некоторые как x64.
кросспостинг это исправление от Ганс К что я нашел на подобную тему >> здесь :
щелкните правой кнопкой мыши на решении -- > свойства
посмотрите в разделе Общие свойства --> Startup Project
выберите несколько проектов запуска
выберите пуск действий по проектам нужно отлаживать.
выбранный ответ привел меня к исправлению моей проблемы. Но мне нужно сделать еще несколько вещей:
даже с" Debug", выбранным в раскрывающемся списке:
и в свойствах проекта > Build:
Visual Studio не загружала символы в определенный проект. Поэтому в этом раскрывающемся списке я выбираю "Configuration Manager" и вижу, что настройки моего веб-проекта были неверно:
затем я установил это в "Debug", и он начал генерировать . но мне нужно вручную скопировать PDB и DLL и поместить в папку, которую искал VS (вот где мне помог выбранный ответ):
Debug
>Windows
>Modules
чтобы увидеть, какие модули загружаются, поместите меня в правильном направлении.
в моем случае IIS Express, казалось, загружал другую DLL из временной ASP.NET файлы.
решение?
- обзор
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
- удалить все в этой папке!
Я смог исправить ошибку, просто установив опцию в "прикрепить к процессу", чтобы "автоматически определить тип кода для отладки", как показано на прилагаемом скриншоте.
просто выполните следующие действия:
- на Debug из меню
- нажать на кнопку присоединить к процессу
- возле прикрепить к, нажмите на кнопку выберите
- в Выберите Тип Код
проверьте, если ваш .файл pbd отсутствует в папке bin/Debug. Если это затем перейдите в "свойства" вашего проекта, выберите "построить", а затем "дополнительно" внизу. Выберите "полный" в разделе "отладочная информация" в появившемся новом окне. Это была моя проблема, и я ее решил.
иногда, даже если это дает вам эту ошибку,breakpoint
все еще попадает, поэтому просто игнорируйте ошибку. Это происходит довольно часто в Views
на MVC web app
.
в моем случае" оптимизировать код " был проверен в моих свойствах проекта. Это заставило VS видеть мою сборку как "не мой код", и, в свою очередь, она не загружала символы для нее.
мы нашли причину нашей проблемы. Этот код использовал атрибут " CodeBehind "в директиве Page.aspx-файл вместо атрибута" CodeFile " (ASP.NET 2.0 и далее). После нескольких дней отчаяния, простой поиск и замена решила проблему.
опция "начать отладку, отладка + Windows + модули" не существует в Microsoft Visual Studio Express 2013 edition.
сняв "Использовать Режим Управляемой Совместимости" в настройках инструментов отладка исправляет это.
в моем случае я пытаюсь отладить в режиме relase. Как только я изменю его на режим отладки. Его работа
Я пробовал все, что упоминалось выше, но ничего не получилось. [чистое решение, и проверка для файлов ПДБ ЕТК.]
даже публикация того же решения не решила проблему.
затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)
все, что я сделал, это намеренно изменить код и опубликовать решение. Затем я вернул изменение и опубликовал его снова.
вуаля [PDB файлы избавления от злых духов].. Не очень разумное решение, но это сработало.. :-|
ни один из этих ответов решить мою проблему. Я попробовал еще одну вещь, основанную на том, что проект с остановкой на самом деле не был загруженным проектом. Я нашел как Ганс Пассант писал что то .DLL, где я хочу, чтобы остановить отладчик и associoated .pdb файлы, скопированные рядом .файл EXE. У этих файлов была более старая дата, поэтому я думал, что они не были обновлены во время выполнения. Я вручную удалил их, Visual Studio создала еще одну пару и поместила эту новую пару рядом .исполняемый. Теперь breakpoins работает !
возможно, Visual Studio не может копировать и заменять существующие файлы (.dll и .ПДБ) рядом .exe, так как есть еще один. Поэтому, если я удалил вручную, VS мог бы создать новый рядом .исполняемый.
Я думаю, что другие изменения (проверки и т. д. - Из других ответов) вызвали что-то, и Visual Studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решение.
Я думаю, что основная причина проблема в том, что Visual Studio использует другой файл во время выполнения, не файл из проекта, с остановкой.
может быть, этот ответ поможет кому-то !
Что нужно проверить, просто чтобы быть ясно: убедитесь, что конфигурация Debug и выхода не. Вы можете отлаживать проект запуска в режиме "Release", но не библиотеку ссылочных классов.
только веб-приложения (IIS Express):
- щелкните правой кнопкой мыши лоток IIS Express и закройте IIS.
- Очистить Решение
я интегрировал приложение c# со статической библиотекой, используя VS10, к которому я новичок. Я написал dll управляемого кода для их интерфейса. Я мог бы установить точки останова везде, кроме статического lib. Я получил сообщение, описанное выше - никакие символы не были загружены для этого документа. Я пробовал многие из предложений выше. Я видел, что символы не загружаются. Наконец, я заметил флажок отладка конфигурации, включить отладку неуправляемого кода. Это позволило мне установить точки останова в статических функциях lib.
Я внимательно прочитал все ответы выше, но ни один из них не решил мою проблему.
в моем случае я компилировал библиотеку классов (DLL). Кажется, что модули не загружаются в Debug - > Modules, поэтому я даже не мог загрузить символы вручную.
мое решение было добавить эту строку в мой код:
System.Diagnostics.Debugger.Launch();
Как только этот код достигнут, запускается исключение и .NET Framework показывает диалоговое окно с запросом, какая Visual Studio (т. е. новый экземпляр VS 2008, новый экземпляр VS 2013 и т. д.), который вы хотите использовать для отладки программы. Вы можете выбрать существующий экземпляр VS с загруженным проектом. Это прикрепит процесс к вашему сеансу VS и загрузит все символы, и теперь вы можете отладить свой проект.
конечно, компиляция должна выполняться с использованием конфигурации отладки, а не выпуска.
свойства проекта (затем выберите конфигурацию сборки) > вкладка сборка > дополнительно... > Отладочная информация (раскрывающийся список)
" все " или только pdb-тогда восстановить
Это заняло у меня некоторое время, попробовал другие варианты выше, и по какой-то странной причине отладка перестала работать.
Tool - >Options - >Debugging - >General - >(untick)"требовать, чтобы исходные файлы точно соответствовали исходной версии"
для ASP.Net приложение, проверьте свойства сайта, ASP.NET таб. Убедитесь, что правильно ASP.NET версия выбрана.
У меня также была такая же проблема, что я перестраиваю все решение( включая ссылочные проекты) в x86 (или x64)
хотя я установил все свои проекты на x86 из Configuration Manager (Build->ConfigManager), некоторые из моих проектов не были установлены на x86.
поэтому просто убедитесь, что щелкните правой кнопкой мыши на вкладке project - >properties - >Debug, проверьте конфигурацию и платформу.
Я знаю, что опоздал на годы, но я думал, что сделал что-то не так, и последовал вышеуказанным шагам, затем я понял, что установил конфигурацию решения на "выпуск" по ошибке :)
щелкните правой кнопкой мыши проект - > свойства - > перейти к Build Tab - > Снимите Флажок Оптимизировать Код. Сделайте это для любого проекта в вашем решении