Как исправить ошибку «В настоящий момент точка останова не будет достигнута. Для этого документа не было загружено никаких символов». предупреждение? - PullRequest
1357 голосов
/ 28 января 2010

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

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

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

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


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

Ответы [ 94 ]

1 голос
/ 28 декабря 2018

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

Инструменты -> Импорт и экспорт настроек -> Сброс всех настроек.

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

1 голос
/ 12 ноября 2015

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

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

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

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

1 голос
/ 02 октября 2015

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

1 голос
/ 02 сентября 2016

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

Просто установив проект на «Настроить как запускаемый проект», добился цели.

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

1 голос
/ 11 июля 2017

Я получил это и был озадачен (с помощью Visual Studio 2013 Premium).

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

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

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

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

1 голос
/ 22 июля 2016

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

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
1 голос
/ 12 октября 2017

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

1 голос
/ 29 января 2016

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

1 голос
/ 29 апреля 2018

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

1 голос
/ 04 мая 2016

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

...