Не удается войти в источник.NET Framework с пакетом обновления 1 (SP1) VS2008

Каким-то образом мой VS2008 SP1 потерял способность входить в источники.NET Framework. Я играл с флажками до бесконечности; Я повторно удалял папку кеша Symbol десятки раз; и я пробовал все виды отладочных символьных серверов.

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

Что дает?

Добавлено: веб-приложение; Windows Vista Business x32; .NET 3.5 SP1.

7 ответов

Решение

Я считаю, что ваша проблема - несоответствующая версия.Net, работающая в вашей Системе, по сравнению с версией образа в pdb, которая загружается с сервера символов. У меня была такая же проблема на 64-битной Vista и Win7. Мне еще предстоит найти ссылку на то, как получить сборку на 2.0.5.xxxx, как указано в инструкции. Пакет обновления 1 (SP1) со всеми пакетами обновлений в двух ОС, которые я отключил, показывает сборки в 2.0.0.xxxx

РЕДАКТИРОВАТЬ: начать отладку любого вашего приложения и нажмите CTRL+ALT+U, чтобы получить список модулей. Он показывает, какая сборка в GAC используется для приложения.

Я написал в блоге то, что я считаю лучшим описанием проблемы. Блог проблемы

У меня была проблема, что я не могу войти в исходный код Framework.

Затем я перешел к настройкам проекта и установил для Target Platform значение "Любой процессор", после чего произошло волшебство, по умолчанию для Target Platform было выбрано значение "x86".

Моя платформа Win7 x64, VS2010

При входе в режим отладки откройте окно "Модули", щелкните правой кнопкой мыши по компоненту платформы и выберите загрузку источника с серверов Microsoft.

Попробуйте эту инструкцию, у меня все отлично работает!

Я заметил, что если эта проблема возникает, когда вы работаете с веб-сайтом, включение поддержки активности HTTP в IIS может исправить это.

Я сталкивался с этим несколько раз в 2005 году. Многое из этого является вуду и, вероятно, не имеет значения, но где-то здесь ответ (который работает для меня):

  1. Убить службу
  2. Удалить все локальные.pdbs
  3. Избавьтесь от временных файлов в (например) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files (либо только файлы, связанные с проектом, либо все из них)
  4. Перезапустить сервис
  5. Если это не сработало, повторите 1-4, перезагрузите компьютер и попробуйте

Я сталкивался с той же проблемой на разных машинах. Я понял это прямо сейчас на Win7 x86 с.NET v2.0.50727 CLR (3.5sp1). Самый цитируемый пост не помогает. Обратите внимание, что "Microsoft Symbol Server" НЕ является исходным сервером с источниками.NET. Он размещает PDB без информации об источнике (не индексируется). Для источников.NET нам нужны индексированные PDB из " http://referencesource.microsoft.com/symbols" и включить поддержку исходного сервера. Но иногда это перестает работать. Я предполагаю, что проблема с невозможностью загрузить индексированные PDB.net (как упоминалось ранее) связана с конфликтами версий.

Я могу сказать только это:

WinServer 2008 R2 3.5.30729.4926 - работает

Win7 x86 3.5.30729.4918 - не работает

Что я имею в виду под "не работает": попробуйте "загрузить из пути символов" (из окон модуля или стека, не имеет значения) и получить диалоговое окно для выбора.pdb (расположено, например, в C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.pdb). То есть VS не может скачать pdb для dll. Абсолютно те же действия на WinSrv2008r2 заставляют VS загружать pdb и (если включена поддержка исходного сервера) исходники.

Другие вопросы по тегам