Как мне исправить «Точка останова в настоящее время не будет достигнута. Для этого документа не было загружено никаких символов. ”Предупреждение?

1326

Настольное приложение С# в экспресс-версии. Затем работала не 5 секунд спустя.

Я попробовал следующее.

  • Убедитесь, что на всех сборках установлены настройки отладки, флаг отладки и полная информация об отладке.
  • Удалите все папки bin и obj и все DLL, связанные с проектом, со всей моей машины.
  • Воссоздайте проекты, создающие проблему с нуля.
  • Reboot.

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


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

  • 0
    Сделал, чтобы они оба загрузили отладочную информацию. И попробуйте выгрузить один из проектов, которые вы не запускаете в данный момент.
  • 93
    При отладке перейдите к представлению Отладка, Windows, Модули. Это покажет информацию о загруженных модулях и статус символа. Вы можете щелкнуть правой кнопкой мыши по модулю и попытаться загрузить символы из другого места.
Показать ещё 14 комментариев
Теги:
visual-studio
debugging
breakpoints

87 ответов

860
Лучший ответ

Начните отладку, как только вы достигли точки останова или использовали Debug > Break All, используйте Debug > Windows > Modules. Вы увидите список всех сборок, загруженных в процесс. Найдите ту, для которой вы хотите получить информацию об отладке. Щелкните его правой кнопкой мыши и выберите "Загрузка информации о символе". Появится диалоговое окно, в котором перечислены все каталоги, в которых он ищет файл .pdb для сборки. Проверьте этот список на фактическое местоположение .pdb. Убедитесь, что он не находит старый.

В обычных проектах сборка и ее файл .pdb всегда должны быть скопированы с помощью IDE в ту же папку, что и ваш .exe. Папка bin\Debug вашего проекта. Убедитесь, что вы удалили один из GAC, если вы играли с ним.

  • 0
    Это позволило мне убедиться, что оно загружается правильно в бета-версии VS 2010. То, что заставило его начать работать, совершенно за мной, но я дам вам ответ, поскольку думаю, что это сработало бы, если бы оно не начало работать произвольно.
  • 0
    +1 @ Даниэль определенно прав, давая ответ на этот вопрос. Имея подобную проблему, и это правильное место, чтобы найти ее / она очень четко говорит мне, что DLL, которую я пытался загрузить, не загружен ни одного символа и даже не пытался искать символы. Короче говоря, это дает вам правильную информацию для продолжения выяснения проблемы.
Показать ещё 29 комментариев
298

Сначала попробуйте перестроить свой проект, щелкнув правой кнопкой мыши проект > Rebuild Если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши по проекту > очистить)

Если это не помогло, проверьте это:

  • Щелкните правой кнопкой мыши ваш проект
  • выберите [Свойства]
  • выберите вкладку [Сборка]
  • убедитесь, что отмечены [Определить константу DEBUG] и [Определить константу TRACE].
  • Нажмите кнопку [Дополнительно] внизу вкладки "Сборка"
  • Убедитесь, что для параметра [Отладка информации:] установлено значение [полный]
  • Нажмите [OK] и перестройте проект; -)

(шаг 6 генерирует файлы .pdb, это символы отладки)

  • 32
    Убедитесь, что для [Debug Info:] установлено значение [full] - исправьте это для меня! У меня есть несколько конфигураций, настроенных для моего проекта, новые, которые я добавил, не имели этого набора.
  • 0
    Это сработало для меня! Но вместо [full] я смог сделать только pdb
Показать ещё 11 комментариев
266

Просто попробуйте попробовать - возможно, вы уже пробовали это. Щелкните правой кнопкой мыши Решение в проводнике решений, нажмите "Чистое решение", это удалит все скомпилированные и временные файлы, связанные с решением.

Сделайте пересоединение решения и попробуйте снова отладить.

У меня также были проблемы с точками останова в нескольких проектах в решении - некоторые скомпилированы как x86, а некоторые - как x64.

  • 5
    Как вы исправили точки останова с несколькими проектами в решении - некоторые скомпилированные как x86, некоторые как x64?
  • 3
    Если вы используете IISExpress (или эмулятор Azure), файлы в C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root могут не обновляться, если AssemblyVersion имеет версию 1.0.0.0. Убедитесь, что это что-то вроде 1.0. *, Так что новая версия генерируется каждый раз, когда вы создаете свой веб-проект. Чистое решение не очищает папку временных файлов Интернета.
Показать ещё 5 комментариев
207

Отключите параметр "Только мой код" в настройках отладки/общего доступа.

  • 2
    Да, на проекте Windows Phone 8 с пользовательской конфигурацией сборки, это то, что он сделал для меня.
  • 0
    Это было решение, которое мне понадобилось при удаленной отладке на автономном сервере IIS.
Показать ещё 10 комментариев
137

Перекрестно разместив это исправление от Hans K, которое я нашел в подобной теме → ЗДЕСЬ < <:

Щелкните правой кнопкой мыши по решению → Свойства

Посмотрите в разделе Общие свойства → Проект запуска

Выберите несколько проектов запуска

выберите "Начать действие" для проектов, которые нужно отлаживать.

  • 7
    Это также обрабатывает ситуации, когда вы пытаетесь отладить веб-проект, который является конечной точкой удаленного взаимодействия .NET, работающей на сервере разработки VS и показывающей «символы не загружены».
  • 1
    Это исправило это для меня. Я думаю, что ранее кто-то пытался подключить отладку к локальному серверу IIS вместо отладочной версии IIS, которую использует visual studio.
Показать ещё 2 комментария
56

Выбранный ответ заставил меня исправить мою проблему. Но мне нужно сделать несколько вещей больше:

Даже при выборе "Отладка" в выпадающем меню:

Изображение 955

И в проекте Properties > Build:

Изображение 956

Visual Studio не загружала символы в конкретный проект. Поэтому в этом раскрывающемся списке я выбираю "Configuration Manager" и вижу, что настройки для моего веб-проекта были неправильными:

Изображение 957

Изображение 958

Затем я установил это в "Debug" и начал генерировать файл .pdb. НО Мне нужно вручную скопировать PDB и DLL и поместить в папку, которую смотрел VS (вот где мне помог выбранный ответ):

Изображение 959

  • 1
    Я работал в режиме release . Спасибо !!
  • 0
    Ключевым для меня было то, что флажок «Deploy» не был установлен, поэтому pdb не был повторно развернут после сборки
40

Debug > Windows > Modules, чтобы увидеть, какие модули были загружены, поставил меня в правильном направлении.

В моем случае IIS Express, похоже, загружал другую DLL из временных файлов ASP.NET.

Решение?

  • Перейдите к C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  • Удалить все в этом каталоге!
  • 0
    Это была моя проблема, папка должна была быть заполнена битыми DLL, которые загружались в качестве предпочтения.
  • 8
    Это сработало для меня, за исключением моего случая, каталог, который мне пришлось удалить, был C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ vs \
Показать ещё 2 комментария
39

Я смог исправить ошибку, просто установив опцию в "Attach to Process" на "Автоматически определять тип кода для отладки", как показано на скриншоте.

Просто выполните следующие действия:

  • Перейдите в Отладка из строки меню
  • Нажмите Присоединить к процессу
  • Рядом с параметром Прикрепить к нажмите кнопку Выбрать
  • Появится окно Выбрать тип кода
  • Теперь выберите параметр Автоматически определить тип кода для отладки и нажмите кнопку OK.

Изображение 960

  • 9
    Для тех, кто попробовал все на этой странице, я исправил свою проблему, переключившись на «Managed (v4.5, v4.0) code»!
  • 0
    Переключение на «Managed (v4.5, v4.0)» исправило это и для меня с отладкой приложения DNN ASP.Net. Спасибо!
Показать ещё 3 комментария
34

Проверьте, не пропал ли ваш .pbd файл в папке bin/Debug. Если после этого перейдите в "Свойства" вашего проекта, выберите "Построить", а затем "Дополнительно" внизу. В появившемся окне выберите "full" в разделе "Debug info". Это была моя проблема и решила ее для меня.

Изображение 961

  • 0
    Я бы посоветовал всем, кто заходит на эту страницу, убедиться, что генерируется pdb, так как это было проблемой для меня.
  • 0
    Спасибо! "только для pdb" (а не полный) было достаточно. Также «Advanced» - это кнопка внизу Build.
Показать ещё 6 комментариев
31

Иногда, даже если он дает вам эту ошибку, breakpoint по-прежнему попадает, поэтому просто игнорируйте ошибку. Это происходит довольно часто в Views MVC web app.

  • 6
    Это должно быть на самом деле где-то на вершине. Я потратил много времени, выполняя все ответы выше, но точка останова действительно будет достигнута. Просто проверьте :) Кроме того, это было настольное приложение WPF.
  • 4
    aspx, по-видимому, компилируется по требованию, поэтому информация об отладке доступна только после того, как страница aspx необходима
Показать ещё 3 комментария
28

В моем случае в моих свойствах проекта был проверен "Оптимизировать код". Это заставило VS видеть мою сборку как "не мой код", и, в свою очередь, она не загружала для нее символы.

Решение заключалось в том, чтобы снять этот флажок. Изображение 962

  • 2
    Это тоже была моя проблема, и я прошел все вышеупомянутые решения один за другим, ничего не получалось.
  • 0
    Я снял флажок с этой опции: чистое решение, восстановленное решение и т. Д. VS всегда считал модуль «оптимизированным». Единственный способ заставить VS обновить информацию об отладке - увеличить версию сборки модуля.
Показать ещё 1 комментарий
20

Просто проверьте, находится ли ваше решение в режиме деблокирования.

  • 1
    Потребовалось почти 4 часа, чтобы выяснить эту проблему. Спасибо
  • 0
    избыточно, чтобы ответить stackoverflow.com/a/21952302/3195477
20

Попробуйте запустить визуальную студию в качестве администратора в окнах.

  • 1
    В итоге мне нужно было запустить msvsmon в качестве администратора на удаленной машине.
  • 0
    Это не то решение, которому должны следовать люди. Если это решит проблему, вы должны сосредоточиться на том, зачем вам нужны права администратора, чтобы VS мог читать содержимое файла .pdb вашего проекта.
Показать ещё 2 комментария
14

Вам нужно включить "Генерировать информацию об отладке" в настройках компилятора

  • 1
    Где это должно быть?
  • 9
    Это так же, как ответ juFo - Project> Properties> Build> Advanced> Debug Info> Full (или только для pdb)
Показать ещё 1 комментарий
13

В моем случае я пытаюсь отлаживать режим relase. Как только я изменю его на режим отладки. Работает

10

Опция "Начать отладку, Debug + Windows + Modules" не существует в выпуске Microsoft Visual Studio Express 2013.

Снимите флажок "Использовать режим управляемой совместимости" в параметрах инструментов Отладка исправляет это.

10

Мы нашли причину нашей проблемы. Этот код использовал атрибут "CodeBehind" в директиве "Страница" файла .aspx вместо атрибута "CodeFile" (ASP.NET 2.0 и выше). После дней отчаяния простой поиск и замена решили проблему.

8

Я попробовал все, что упоминалось выше, но ничего не получилось. [Очистить решение и проверить файлы PDB и т.д.]

Даже публикация того же решения не решила проблему.

Затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)

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

Voila [файлы PDB избавлены от злых духов].. Не умное решение, но это действительно сработало..: - |

  • 2
    make a deliberate change сработало для меня
7

Все, что нужно проверить, чтобы быть ясным: убедитесь, что у вас установлена ​​настройка "Отладка", а не "Отпуск". Вы можете отлаживать проект запуска в режиме "Release", но не ссылочную библиотеку классов.

6

Ни один из этих ответов не решил мою проблему. Я попробовал другое, основанное на факте, что проект с остановкой на самом деле не был загруженным проектом. Я нашел, как Ханс Пассант написал, что .dll, где я хочу остановить отладчик и связанные файлы .pdb, скопированные рядом с файлом .exe. У этих файлов была более старая дата, поэтому я думал, что они не обновлены во время выполнения. Я вручную удалил их, Visual Studio создала другую пару и положила эту новую пару рядом с .exe. Теперь работает breakpoins!

Возможно, Visual Studio не может скопировать и ЗАМЕНИТЬ существующие файлы (DLL и .pdb) рядом с .exe, так как там есть другое. Поэтому, если я удаляю вручную, тогда VS может создать новый файл .exe.

Я думаю, что другие изменения (проверки и т.д. - из других ответов) вызвали что-то, и Visual Studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решение.

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

Возможно, этот ответ поможет кому-то!

5

Это заняло у меня некоторое время другие варианты выше, и по какой-то странной причине отладка перестала работать.

Инструмент → Параметры → Отладка → Общие → (untick) "Требуется исходный файл, чтобы точно соответствовать исходной версии"

5

Только для Web-приложений (IIS Express):

  • Лоток Rightclick IIS Express и закройте IIS.
  • Чистое решение

Изображение 963

5

Вместо того, чтобы делать все это просто

Закрыть и снова открыть

решение будет устранять проблему

  • 0
    Работал для меня в Microsoft Visual Studio 2013 в разделе: Файл> Закрыть решение, затем Файл> Открыть решение (должен быть предварительно загружен в ту же папку, в которой он находился). Точки останова мгновенно перешли от желтого флага к круглому красному. Тогда спасибо.
  • 7
    Не всегда работает и не работает в VS 2015.
5

Свойства проекта (затем выберите конфигурацию сборки) > Вкладка "Вкладка" > "Дополнительно..." > "Отладочная информация" (раскрывающийся список)

Установите значение "all" или "pdb-only", затем перестройте

  • 0
    я сделал pdb_only, также очистил и перезапустил браузер
  • 0
    работал на меня! отличный
4

Я внимательно прочитал все ответы выше, но ни одна из них не решила мою проблему.

В моем случае я составлял библиотеку классов (DLL). Никакие модули, похоже, не загружаются в Debug → Modules, поэтому я не мог даже загрузить символы вручную.

Мое решение состояло в том, чтобы добавить эту строку в мой код:

System.Diagnostics.Debugger.Launch();

Как только этот код будет достигнут, будет инициировано исключение, а .NET Framework отобразит диалоговое окно с запросом Visual Studio (т.е. новый экземпляр VS 2008, новый экземпляр VS 2013 и т.д.), который вы хотите использовать для отладки программы. Вы можете выбрать существующий экземпляр VS с загруженным проектом. Это приложит процесс к вашей сессии VS и загрузит все символы, и теперь вы можете отлаживать ваш проект.

Конечно, компиляция должна быть выполнена с использованием конфигурации Debug, а не Release.

4

Я интегрировал приложение С# со статической библиотекой, используя VS10, к которой я новичок. Я написал управляемый код dll для их взаимодействия. Я мог бы установить точки останова повсюду, кроме статической библиотеки. Я получил сообщение, описанное выше, - для этого документа не были загружены символы. Я попробовал много из приведенных выше предложений. Я видел, что символы не загружаются. Я, наконец, заметил флажок "Конфигурация Debug", "Включить неуправляемую отладку кода". Это позволило мне установить точки останова в статических функциях lib.

3

У меня была аналогичная проблема, и я сделал следующее: Debug => Options => General => Удалить галочку для "Включить только мой код". Это сработало для меня..

3

Я знаю, что я опаздываю на несколько лет, но я думал, что сделал что-то неправильно и последовал вышеописанным шагам, тогда понял, что я установил конфигурацию решения "Release" по ошибке:)

  • 1
    Могу ли я поднять 10K раз? Хуже всего то, что я думаю, что искал это в Google примерно 10 раз сейчас, и каждый раз - одна и та же глупая ошибка. Возможно, Microsoft могла бы намекнуть это пользователю?
  • 0
    избыточно, чтобы ответить stackoverflow.com/a/21952302/3195477
3

У меня также была та же проблема, что я перестраиваю все решение (включая реферированные проекты) в x86 (или x64)

Хотя я установил все мои проекты на x86 из Configuration Manager (Build-> ConfigManager), некоторые из моих проектов не были установлены в x86.

Итак, просто чтобы щелкнуть правой кнопкой мыши по проекту и следовать

project → properties → Debug Tab, проверьте конфигурацию и платформу.

3

Для приложения ASP.Net проверьте свойства сайта, вкладку ASP.NET. Убедитесь, что выбрана правильная версия ASP.NET.

2

Щелкните правой кнопкой мыши Project → Properties → Go to Build Tab → Снимите флажок "Оптимизировать код". Сделайте это для любого проекта в своем решении

  • 0
    это не очень хорошая идея Лучше скомпилировать в режиме отладки, а затем перейти в режим выпуска после того, как все было сделано
2

Я пробовал все это и не мог заставить свою рабочую точку работать...

Что я сделал, чтобы исправить эту проблему, было

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

2

Если мы получим последнюю версию VSTS, все файлы будут находиться в режиме только для чтения. При запуске проекта все классы библиотеки классов получают только чтение, а brakepoints становятся пустыми и говорят: "В настоящий момент точка останова не будет удалена. Для этого документа не загружены символы".

Решение 1

Перейдите в расположение проекта и нажмите правую лижущую папку --- > Свойства --- > Общая вкладка --- > UNCHECK только для чтения (применяется только к файлам в папке) --- > Применить --- > Ok

Решение 2

Запустите отладку, перейдите в Debug --- > Windows --- > Модули. Выберите одну сборку и щелкните правой кнопкой мыши --- > (Выбрать). Задайте свой путь Bin в символе кэша в этом каталоге и выберите Microsoft Servers в Symbol of PDB location. Нажмите Загрузить все символы. Это займет время. Затем нажмите "ОК".

Теперь статус символа всей сборки был изменен с "невозможно найти или открыть PDB" на "Загруженные символы".

  • 0
    Если вы используете «Присоединить к обработке», «Инструменты»> «Присоединить к обработке», а затем «Прикрепить к» должно быть автоматически: собственный код. Наш исходный файл должен быть в режиме только для чтения. Мышь часом открыл исходный файл и проверь
  • 0
    Наш проект использовал VSTS ... это избавило меня от головной боли ... Спасибо
2

это произошло со мной после того, как скопируйте другой файл asmx webservice в существующий веб-сервис, что приведет к той же ошибке при попытке отладки недавно добавленной службы, чтобы иметь возможность отлаживать, я должен был начать без отладки, а затем присоединить к процессу, его странно, но это единственный способ, которым я нашел возможность отлаживать.

1

В моем случае я отлаживал расширение WPF с помощью Visual Studio Experimental Instance. После начала отладки и приостановки работы dubugger я открыл окно Debug > Windows > Modules. Форма там, я мог видеть каталог, где Visual Studio пыталась загрузить символы C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\15.0_76a9e536Exp\Extensions\<companyName>. После прекращения отладки я удалил целевую папку с помощью проводника Windows и перезапустил отладчик. Затем Visual Studio удалось попасть в точку останова.

  • 0
    Единственный вариант, разработанный для моего VS 2017 (v15.6)!
1

В моем случае это связано с тем, что мой профиль публикации (опубликовать на локальный сайт IIS) был каким-то образом настроен на Release Configuration, несмотря на то, что для глобальной конфигурации сборки была настроена Debug. Модифицированный профиль публикации для конфигурации Debug решил проблему для меня.

1

Я получал это и был в тупик (используя Visual Studio 2013 Premium).

Обычно наши приложения работают со справочными файлами .dll в определенном общем каталоге/приложении, например: C:\OurCompanyApps\xxxxxx.dll. Это происходило в решении, в котором есть куча проектов WinForm и .dll. Проекты .dll, скомпилированные в C:\OurCompanyApps \, и проекты WinForm ссылаются на скомпилированные файлы .dll в этом месте.

Проблема: Я обнаружил, что рассматриваемое приложение ссылалось на проект .dll в папке Source Control bin\Debug вместо скомпилированного файла .dll в C:\OurCompanyApps.

Решение: Я удалил ссылку и снова добавил ее из C:\OurCompanyApps\location. Затем я мог бы пройти через точки останова, которые я добавил в код .dll.

Надеюсь, это поможет кому-то.

1

Я закончил тем, что искал свою проблему до очевидной проблемы несовместимости, используя несколько версий PostSharp. Приложение, которое я пытался отлаживать, имело предыдущую версию PostSharp, но ссылалось на проект, который использовал более новую версию, и по той или иной причине это привело к тому, что VS отказался генерировать файл PDB для специально это приложение (все остальные DLL файлы отлично загружали символы отладки).

Решение заключалось в том, чтобы обновить PostSharp в каждом проекте до самой последней версии и перекомпилировать.

1

У меня была такая же проблема, и я пробовал все возможное... некоторые из них

1) Временные файлы Nuking во временных папках ASP.NET в папках bin и obj.

2) Снимите флажок "Оптимизировать код" и "Включить мой код"

3) Навигация и попытка вручную загрузить символы из окон модуля.

4) Проверка флага сборки в свойствах решения. ........

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

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

  • Щелкните правой кнопкой мыши конкретный веб-проект и выберите свойства
  • Перейти на вкладку "Веб"
  • Вы можете увидеть кнопку Создать виртуальный каталог
  • Как только я щелкнул по нему, я увидел предупреждающее сообщение о том, что "имя проекта (projectname) сопоставлено с (anotherProjectName)", вы уверены, что хотите выполнить переназначение? Что-то вроде этого
  • , тогда имело смысл, что за то, почему я видел ненужное имя проекта в окне модулей
  • , то я восстановил решение и смог попасть в точку останова
1

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

Просто настройка проекта на "Настроить как проект запуска" сделала трюк.

Надеюсь, что это поможет

1

В моем случае в файле AssemblyInfo.cs была строка ниже, и я прокомментировал ее, и все было правильно:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
1

Моя личная ситуация заключалась в том, что отладка работала в Visual Studio 2013, где она была изначально создана, но не будет работать в 2015 году. Я смог исправить это, изменив версию в файле проекта на версию 12 вместо версии 10.

  • 0
    Где находится файл проекта. Как я могу найти этот файл.
  • 1
    Это файл .proj.
1

Убедитесь, что ваш код не выбрасывается во время соединения. Несмотря на то, что компилятор может перестроить объект, если компоновщик не видит ссылки на код, он будет отбрасывать его и вызывать эту ошибку при попытке установить точку останова.

1

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

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

Решение как бы состоит в том, чтобы реорганизовать структуру физических папок вашего решения и проектов или открыть файлы .csproj индивидуально и исправить относительные пути, чтобы все ссылки на любую указанную библиотеку в конечном итоге указывали на одно и то же местоположение во всех проекты. Или, возможно, использовать токен $(SolutionDir).

И если все остальное все еще терпит неудачу, вам нужно заставить Visual Studio сбросить конфигурацию сборки, и для этого вам нужно снять все проекты для всех конфигураций сборки, а затем перепроверить их все - см. решение .

1

Я хотел бы добавить еще одну вещь, которая может помешать stepping/break, не загружая файл .pdb после того, как не найдет это в каком-либо другом форуме: если вы добавите пост-процесс сборки для добавления метаданных ресурсов к DLL (название компании, номер версии и т.д.), как в "rc.exe my_dll.rc", это может привести к неправильному совпадению между DLL и файлом .pdb. Если сигнатуры не совпадают, он не будет загружать файл и все символы, необходимые для отладки. Удалите это из сборки отладки.

1

Я прошел через все ответы, ничего не помогло. В моем случае проблема с файлом web.config. Это было <compilation debug="false" strict="true"

Я изменился на

<compilation debug="true" strict="false". Теперь я могу отлаживать приложение.

1

[ WINCE] Мне приходилось сталкиваться с этим во время сборки на WinCE, казалось, что "Clean" не очистил целевую папку на устройстве, я получил отладочную/отладочную информацию, изменив Выходная папка на устройствах (Свойства проекта - вкладка "Устройства" → изменить папку вывода, отличную от предыдущей неудачной отладки) - и вуаля! оно работает. Может потребоваться ручная очистка устройства, но это будет позже.

Надеюсь на эту помощь.

  • 0
    Да, просто удалите исполняемые файлы, переименуйте их, если они заняты.
1

При попытке отладки Excel AddIn в VS 2013 после того, как я попробовал все настройки Debug, отключив DotNet Framework Source Stepping и отключив загрузку Symbol, то, что в итоге работало для меня, было изменение настройки конфигурации для выпуска, а не отладки, поскольку компилятор, казалось, шаг над кодом, и точки останова были в конечном итоге удалены.

0

В моем случае ни одно из этих решений не сработало. Я должен был пойти в

Инструменты → Импорт и экспорт настроек → Сбросить все настройки.

и тогда отладка начала работать без проблем.

0

При отладке сборки путем запуска внешнего приложения есть несколько дополнительных соображений:

  • Внешнее приложение может загружать собственные копии сборок (DLL) из файла манифеста. (например, файл appname.exe.manifest) Если это так, вам нужно отключить это, возможно, вручную изменив манифест.

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

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

0

Если у вас есть С# и собственный код (C/C++), убедитесь, что для проекта включена собственная отладка:
1. Щелкните правой кнопкой мыши ваш проект запуска в обозревателе решений
2. Выберите "Свойства"
3. Выберите вкладку "Отладка"
4. Убедитесь, что включена отладка исходного кода Изображение 964

0

Существует множество ответов со многими различными решениями для решения этой проблемы.

Другое решение - убедиться, что ваш код доступен. Например:

Любой код, который добавляется после возврата в функцию. Добавление GOTO, которое эффективно пропускает ваш код с точкой останова.

Я не говорю, что это нормально, но они также являются причинами.

0

Нет meu caso dei um F11 na chamada do método, forçando entrar no método onde o BP com problema estava, sendo assim, o точка прерывания foi recuperado.

В моем случае я дал F11 в вызове метода, заставляя вводить метод, где была проблема BP, поэтому точка прерывания была восстановлена.

0

В моем случае это произошло после обновления Windows, выясняется, что обновление Windows отключено от Internet Information Services, что заставляет его казаться, что мой API не смог попасть в точку прерывания, которую я установил, но на самом деле произошло то, что IIS не запускался, поэтому код приложения не был запущен.

Дважды проверьте, что Internet Information Services включена в меню "Возможности Windows".

Инструкции для IIS:

  • панель управления
  • программы
  • открывать или закрывать окна
  • тиковые интернет-услуги
  • перезапустить visual studio

Если вы используете IIS Express:

Откройте "Установка и удаление программ" со старой панели управления и запустите ремонт в IIS Express. Или вы можете перейти на панель управления - >> Программы - >> Программы и компоненты - >> Включить или отключить функции Windows - >> Информационные службы Интернета и проверьте родительскую папку Internet Information Services.

Я получил этот ответ здесь: Указанный аргумент был вне диапазона допустимых значений. Имя параметра: сайт

0

Новый способ получить эту проблему появился с Visual Studio 2017 с 15.3.1 по 15.3.5. Если вы используете EditorConfig, параметр charset = utf8 вызывает эти симптомы. Команда VS воспроизвела это, и говорит, что они работают над этим.

Итак, одно исправление заключается в том, чтобы прокомментировать строку charset = utf8 в файле .editorconfig.

Статус теперь "Исправлено - ожидающий выпуск" по состоянию на 9 октября 2017 года.

(Благодаря Джону Хаттону, "В настоящий момент точка останова не будет удалена. Исходный код отличается от исходной версии." Что это значит?

0

Для моего приложения Xamarin он, наконец, начал отладку после того, как полностью уничтожил папку "Управление источником", "Получил последнюю" и перестроил решение.

0

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

0

Поместит это здесь в надежде, что это поможет кому-то.

У меня была проблема с отсутствующими символами в отношении веб-службы.

Глубокое решение заключалось в том, что проект установки не был создан для сборки, когда было построено решение, а это означало, что когда я щелкнул правой кнопкой мыши проект установки и установил сервис, то привязан к процессу; тот же устаревший сервис устанавливался без pdb, потому что он не соответствовал = нет рабочих точек останова.

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

0

Мой разум был устаревшим Telerik OpenAccess ORM. Установлена ​​новая версия, после чего она работает. Необходимо загрузить и установить. Только обновление NuGet не работает. кто-то еще упомянул об этом

0

Использование инъекции зависимостей, Autofac в моем случае, для автоматического решения путем сканирования сборок. Одна из ссылочных сборок не была решена.

Мое исправление заключалось в том, чтобы напрямую ссылаться на класс из сборки, чтобы заставить Visual Studio загрузить сборку. Просто наличие сборки в качестве ссылки не будет загружать сборку при запуске приложения.

0

Я установил точку останова и получил это сообщение на этой точке останова при выполнении кода. Однако точка останова была доступна только для unit test. Мне нужно было щелкнуть правой кнопкой мыши по unit test и выбрать "тесты отладки" Doh!

0

Иногда IIS по какой-то причине будет храниться в файлах. Мне пришлось удалить веб-сайт и создать его заново, и проблема исчезла.

0

В главном проекте есть ссылка на Project Reference и File на тот же проект.

В моем случае основной проект имел две ссылки: одна была ссылкой на проект и другая ссылка на файл, в DLL, сгенерированную одним и тем же проектом.

Таким образом, файл pdb не копировался в папку основного проекта bin, что приводило к отсутствию символов.

0

Проект > Свойствa > С++ > Общие > Формат отладочной информации - База данных программы (/Zi)

Я проверил Linker > Debugging и уже генерировал информацию об отладке. Когда я запустил приложение, были загружены символы (Debug > Windows > Modules). Настройка формата отладки исправила его для меня. Надеюсь, это поможет кому-то!

0

Это может быть вызвано тестовым проектом, веб-проектом или другим проектом выполнения, имеющим ссылку Nuget на проект с тем же именем, что и загружаемый модуль.

Возьмем следующие примеры проектов в решении:

  • Vendor.ABC
  • MyLib (ссылки Vendor.ABC)
  • MyProg (консольная программа: ссылаясь только на MyLib)
  • MyProg.Web (проект MVC: ссылки MyLib и проект решения Vendor.ABC)
  • MyLib.Test (тестовый проект: ссылки MyLib и Nuget Vendor.ABC)

MyProg и MyProg.Web будут загружать символы отладки. MyLib.Test не будет загружать символы отладки.

0

Моя пропала в основном потому, что у меня было 2 проекта, припаркованных к одному URL-адресу IISExpress, убедитесь, что вы указали другой порт и нажмите CreateVirtualDirectory.

0

Я понимаю, что это старая нить, но на благо других вот что случилось со мной. Проблема заключалась в том, как я применил атрибут Designer. Я создал класс дизайнера. Дизайнер переопределяет PrefilterProperties, чтобы сделать только свойства привязки, AutoScroll и AutoSize.

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
public class j2aScrollableContainerDesigner : ParentControlDesigner

Я создал класс и добавил к нему своего дизайнера. Это стандартный способ привязать атрибут конструктора к классу и найден во многих примерах MSDN. Дизайнер явно не использовался, потому что, когда я поместил свой контроль на поверхность формы, ни одно из упомянутых выше свойств не было прочитано только в Property Grid.

[Designer(typeof(j2aScrollableContainerDesigner), typeof(ParentControlDesigner))]
public partial class j2aScrollableContainer : UserControl

Из отчаяния я изменил объявление атрибута Designer в моем классе на следующую подпись и теперь был вызван дизайнер. У меня нет объяснений, почему один способ работает, а другой нет. Если я вернусь к описанному выше описанию атрибута Designer, дизайнер снова перестанет работать.

[Designer(typeof(j2aScrollableContainerDesigner))]
public partial class j2aScrollableContainer : UserControl
0

Использование MVC. Ничего не работало, пока я не удалил старый файл и не перестроил его, добавив код обратно в новый файл.

0

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

0

Также возникла проблема с созданным проектом Qt.pro. Оказалось, что я забыл установить переменную среды, которая определяет свойства/общий/выходной каталог. Тривиальный, и один, чтобы посмотреть в первую очередь, но иногда мы пропускаем очевидное.

0

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

0

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

Код, который она хотела отлаживать, была в проекте, на который ссылается текущий проект, и он никогда не запускался в сеансе Visual Studio. DLL запускалась из папки GAC после того, как она удалила, что проект не будет запущен вообще, выбросив исключение, как только он попытается запустить. Решение заключалось в том, чтобы включить указанный проект в локальную папку.

Из SolutionExplorer:

  • Выберите проект "отладки", из которого вы закончите
  • Развернуть Ссылки (если не видно, выберите меню Проект, элемент Показать все файлы)
  • Щелкните правой кнопкой мыши проект, у которого есть точка останова, которая не работает, выберите Свойства
  • Изменить значение Скопировать локальную из False в Истина

Повторите попытку. (Это сработало для нее!)

0

Еще один совет, который работал у меня.

Если ваш проект/библиотека подписана, даже не задержка подписана, она все еще не может быть отлаживаемой. Попробуйте отключить параметр подписи, отладить его, а затем восстановить параметр подписи.

0

Для меня:

  • Свойства открытого решения
  • Выберите "Общие свойства" / "Отладочные исходные файлы"
  • В окне "Не искать эти исходные файлы" удалите файлы, которые почти наверняка ошибочны.
0

В моей ситуации Visual Studio загружает библиотеки DLL в Глобальный кэш сборок (GAC), а не DLL в моем списке проектов. Я удалил DLL в GAC, и теперь я вижу, что точка останова работает.

0

Я использовал IE8 и пытался внести изменения в некоторые файлы JavaScript. Хотя код выполнялся, он не останавливался на контрольных точках, и я получал одно и то же сообщение на контрольных точках. Обновление до IE11 исправило проблему для меня.

0

Возможно, вы не должны были делать AutoPostBack.
Если ваш код не создает PostBack, вы можете получить эту ошибку. С уважением.

0

При попытке отладки приложения silverlight в проекте sharepoint возникла проблема. На вкладке sharepoint свойств проекта вы должны явно включить отладку для приложений Silverlight. Иначе вы получите эту ошибку.

0

У меня это было при запуске веб-сайта ASP.NET в 2013 году. Похоже, что в моем случае он уходит после полного запуска веб-браузера.

0

Ни одна из идей здесь не работала для меня, но я благодарю всех за их усилия - в моем случае это приложение Windows, которое ссылалось на проект библиотеки классов - я мог отлаживать приложение Windows, но не библиотеку классов. Создавались файлы pdb. Однако я обнаружил, что если я отлаживаю вызов в библиотеке классов, я мог бы войти в библиотеку.

0

Я сделал чистую и переделанную вещь. Это не сработало (обычно это происходит). Теперь я подключаюсь к w3wp перед вызовом службы, затем позволю ему вызвать службу один раз, нажать другую точку останова, затем я изменяю точку выполнения, чтобы она снова запускала ту же строку (вызов службы), а затем она фактически останавливается в точке останова внутри метода службы.

0

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

У меня была эта проблема в проекте asp.net MVC3; один из моих контроллеров по какой-то неизвестной причине установил Build Action для EntityDeploy, хотя он должен был Компилировать.

0

Я столкнулся с этой проблемой, пытаясь отладить фоновый агент WP7-приложения. Как оказалось, эта проблема отладки была всего лишь симптомом реальной проблемы: мой фоновый агент вообще не работал в режиме отладки. Я выполнил следующее руководство о том, как реализовать фоновый агент: http://msdn.microsoft.com/en-us/library/hh202941(v=vs.92).aspx

... но забыл добавить

#define DEBUG_AGENT

что означало, что мой агент никогда не запускался в режиме отладки. После того, как эта строка была добавлена, проблема, связанная с этим вопросом, исчезла.

-2

Проверьте, включена ли опция "Включить только мой код". Если да, отключите его.

-2

Попробуйте очистить свое решение. Работал для меня.

-2

В Visual Studio проверьте

Build = > Configuration Manager = > Конфигурация активных решений

Если для параметра "Отпустить" вместо "Отладка" не будут удалены точки останова.

  • 0
    избыточно, чтобы ответить stackoverflow.com/a/21952302/3195477
  • 0
    @DaveInCaz спасибо, что проголосовали за мой правильный ответ, который дал четкую инструкцию о том, как решить проблему. Ответ, с которым вы связаны, на самом деле не говорит вам, как настроить конфигурацию, как это делает мой ответ.
Показать ещё 1 комментарий
-3

Я сошел с ума, пытаясь понять, почему мой javascript файл не будет отлаживать, и потребовалось найти в "Script Documents" (загруженные скрипты), чтобы реализовать мой script, не было.

Дизайнер отредактировал заголовки страниц и заменил мои индивидуальные javascripts на комбинированную мини-версию. Я не понимал, что до полутора часов стоит искать и отлаживать попытки.

Поэтому в основном я рекомендую посмотреть в этом списке при отладке. Если он там отсутствует, его нельзя отлаживать. Doh.

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

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

  • 1
    Я не уверен, как это относится к актуальному вопросу ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню