Точка останова в настоящее время не будет достигнута. Для этого документа в приложении Silverlight не было загружено никаких символов - PullRequest
327 голосов
/ 20 февраля 2010

Хорошо, что у меня есть:

Visual Studio 2010 RC, W7 x64, запустил новый тип проекта приложения Silverlight. Размещение приложения Silverlight в проекте веб-приложения ASP.NET. Версия Silverlight 3.0. Добавлены класс LinqToSQL, служба WCF, приложение Winform Tester (проект в решении) и несколько классов (также как проекты в решении).

Вчера внезапно я получил «Точка останова в настоящее время не будет достигнута. Для этого документа не было загружено никаких символов. ' сообщение появляется в IDE, но оно влияет только на веб-приложение, я могу отлаживать Silverlight и приложение Winform.

Что я пытался / сделал, чтобы избавиться от сообщения:

  • Сброс настроек Visual Studio
  • удалил все файлы в каждой \ Temporary ASP.NET Files Folder (есть один для каждых 32-битных / 64-битных и для Framework 2.0 и 4.0)
  • пытался отлаживать с помощью интегрированного веб-сервера Visual Studio - обычно я использую IIS, в выходных данных проекта решения я удалял все папки obj и bin в каждой папке проекта
  • создал новое решение и добавил все проекты в это новое решение
  • удалил файл suo решения
  • создал новое веб-приложение ASP.NET, чтобы проверить, является ли это проблемой установки VS => Я могу отладить этот новый проект / решение
  • перезагрузил машину несколько раз
  • восстановил установку vs.net
  • сделал IISReset
  • удалил веб-приложение из IIS
  • использовал кнопку Создать виртуальный каталог в разделе Свойства проекта веб-приложения для создания нового веб-приложения в IIS
  • изменил версию фреймворка каждого проекта с 3.5 на 4.0
  • Открыл Решение на моем втором компьютере => То же поведение
  • просканировал Microsoft Connect на наличие ошибок / похожих проблем
  • потратил 7 часов.

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

Ответы [ 49 ]

176 голосов
/ 04 мая 2010

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

См. Общие свойства -> Запуск проекта

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

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

78 голосов
/ 05 апреля 2011

У меня была та же проблема, и после поиска в Google я нашел два типичных решения для этого:

  1. Убедитесь, что отладчик Silverlight активирован в проекте .Web. Откройте свойства проекта и выберите отладчик Silverlight на вкладке «Интернет».

  2. Перезапустите Visual Studio и удалите все папки bin и obj.

Но ничего из этого не помогло мне . Затем кто-то упомянул о том, что вместо браузера можно использовать IE. Это заставило отладку и точки останова снова работать!

Edit:

Позже я боролся с IE9, не работающим, потому что он подключается к неправильному процессу. Вместо того, чтобы каждый раз вручную подключаться к правильному процессу IE, я нашел изящный трюк :

  • Щелкните правой кнопкой мыши одну из сгенерированных страниц в проекте .Web (.html или .aspx)
  • Нажмите «Обзор с помощью ...»
  • Установить IE в качестве браузера по умолчанию (повлияет только на выбор браузера Visual Studio)

Теперь Visual Studio запустит IE при запуске проекта .Web и подключится к правильному процессу. Это должно сделать это.

54 голосов
/ 20 февраля 2010

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

То есть сервер приложений запускает приложение из

C:\dev\MyApplication\bin 

но Visual Studio отлаживает от

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).

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

Обновление

Для IIS каталог сервера приложений (т. Е. C:\dev\MyApplication выше) - это физический каталог , настроенный для веб-приложения - этим можно управлять, изменив основные параметры приложения.

Для Visual studio каталог отладки (т. Е. C:\dev\MyOtherApplication выше) - это каталог, в котором находятся ваши файлы svc, обычно это тот же каталог, что и ваш файл проекта csproj.

46 голосов
/ 09 сентября 2011

Проблема оказалась для меня в том, что в настройках Debug был установлен флажок Properties-> Build-> Optimize code Выключил, восстановил и отладка работала как обычно.

21 голосов
/ 20 февраля 2010

Причина, по которой вы столкнулись, заключается в том, что PDB («PDB означает« База данных программ », проприетарный формат файлов (разработанный Microsoft) для хранения отладочной информации о программе) не устарели, это может быть связано с по некоторым причинам:

1 - Как сказал Беван, возможно, вы отлаживаете другое приложение!

2 - вы отлаживаете другую версию того же приложения. Например, вы прикрепили ранее построенное приложение с текущей версией кода для отладки без (пере) его сборки.

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

Чтобы убедиться, что проблема не ваша, попробуйте отладить то же приложение с VS 2008 (я боюсь, что это может быть ошибкой в ​​VS 2010 - это все еще бета!).

20 голосов
/ 14 января 2011

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

18 голосов
/ 05 марта 2013

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

Когда вы запускаете проект в режиме отладки, он показывает в окне «Вывод», какие сборки имеют загруженные символы, как показано ниже (вам может понадобиться открыть изображение на новой вкладке): T

Output window

Так что в этом случае в BASD.Core.Data.dll НЕ загружаются символы. Таким образом, вы можете сравнить настройки проекта для этой сборки с настройками другой сборки, которой удалось загрузить символы, чтобы выяснить, почему некоторые загружают, а некоторые не загружают символы.

Однако, «для меня», «каждый раз» это происходит потому, что информация об отладке не создается. Поэтому я открываю Свойства проекта> Сборка> Дополнительно в (C #) проекте.

Таким образом, для Basd.Core.Data.dll выше, т.е. никаких символов, дополнительные параметры сборки были:

pdboff

Принимая во внимание, что для Basd.Core.Configuration.dll, т. Е. Сборки, где я мог установить и достичь точки останова, были установлены следующие настройки:

pdbon

Итак, я выводлю отладочную информацию в последнем проекте, а не в первом, поэтому моя способность достигать точки останова в Basd.Core.Configuration.dll

Также обратите внимание, что недостаточно просто иметь файл .pdb в папке bin проекта для данной библиотеки DLL, поскольку он может быть устаревшим и поэтому не может быть выбран Visual Studio в качестве допустимого файла символов для DLL, которую вы пытаетесь пройти.

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

(я понимаю, что в этом случае я нахожусь в режиме Release, но метод все еще применяется)

14 голосов
/ 21 марта 2012

Перейти к свойствам проекта -> Построить -> Дополнительно ...

В разделе «Вывод» выберите «полный» в раскрывающемся меню «Отладочная информация»

12 голосов
/ 07 ноября 2014

Убедитесь, что ваша программа работает в режиме отладки, а не в режиме RELEASE.

9 голосов
/ 20 октября 2011

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

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

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

  • Щелкните правой кнопкой мыши свой проект и выберите «Свойства»
  • Выберите вкладку «Приложения Silverlight» слева
  • Нажмите кнопку «Добавить ...» и выберите свой проект Silverlight из диалогового окна

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

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