2012-03-27 21 views
2

У меня есть проект с несколькими ссылками на мой собственный код в других DLL. Одна из DLL загружает свой файл pdb, когда я запускаю веб-сайт, а другой нет.Файлы PDB не загружаются для некоторых проектов

С выхода я вижу это:

LOTS_OF_TEXT \ Shared.BusinessLayer.DLL '
LOTS_OF_TEXT \ Shared.Visual.Utilities.DLL', Символы загружены.

я проверил, и они оба имеют соответствующий PDB файл в том, что «LOTS_OF_TEXT» место ... но один из них загружает символы (и позволяет отладку), но другой нет.

Почему? Как получить Shared.BusinessLayer.DLL для загрузки символов, чтобы я мог его отладить?

EDIT
Ради эталонным, я Belvedere копируя PDB файлы /AppData/Local/Temp/SymbolCache, когда они меняют ... который где мои настройки отладки сказать Visual Studio для поиска символов.

+0

BTW ... что такое Belvedere? «Belvedere C#» на google не дает ничего полезного. –

+1

Копирование .pdbs - это вообще плохая идея. Оставьте их там, где они были сгенерированы, исполняемый файл сохраняет исходный путь. Отладка + модули Windows +, щелкните правой кнопкой мыши модуль и выберите «Информация о загрузке символов», чтобы узнать, где отладчик ищет pdb. –

+0

В вашей текущей конфигурации сборки это конкретный проект для отладки? –

ответ

2

Запустите приглашение vsvars cmd (или powershell) и перейдите в папку LOTS_OF_TEXT. Visual Studio поставляется с инструментом под названием «dumpbin.exe», который позволяет вам изучить структуру .dll или .exe. Чтобы искать отладочные символы, запустите dumpin в приглашении cmd, набрав dumpbin /headers Shared.BusinessLayer.DLL, и вы должны увидеть путь символа в информации заголовка для dll , если он был фактически построен с символами. Пока символы есть или на пути поиска, они должны быть загружены.

При этом убедитесь, что визуальная студия настроена на загрузку всех символов, выбрав Инструменты-> Параметры-> Отладка-> Символы и убедитесь, что переключатель «Автоматическая загрузка символов для:» установлен на «Все модули , если исключено ", и что список исключений не содержит соответствующих изображений.

+0

Что означает «Run dumpin/headers on the dll»? –

+0

@James - dumpbin.exe - это инструмент, который поставляется с визуальной студией, которая позволяет вам смотреть на различные аспекты .dll и .exe-изображений. Если ваша dll имеет символы, путь к этим символам записывается в заголовок изображения. –

+0

Спасибо - в моем случае ссылка .exe-файла нашла свой путь к «списку исключений», – Jonno

Смежные вопросы