Подтвердить что ты не робот

Как я могу получить PDB файл для пакета EntityFramework NuGet?

Я пытаюсь отладить StackOverflow в пакете EntityFramework NuGet (версия 6.1.3). Чтобы увидеть кадры стека, мне нужен файл PDB для EntityFramework.DLL и EntityFramework.SqlServer.DLL. Однако я не могу заставить Visual Studio загружать это из источников символов MSFT или из SymbolSource.org(я могу получить другие системные PDB и такие вещи, как NewtonSoft.json). Доступны ли PDB EF в любом месте?

4b9b3361

Ответ 1

Теперь с картинками (так как мне понадобилось около часа проб и ошибок)

  • Получить DotPeek от Jetbrains (автономная версия)

  • Откройте DotPeekFileOpen → перейдите в папку проекта bin и откройте EntityFramework.dll

  • Right mouse на EntityFramework, затем выберите Generate Pdb... введите описание изображения здесь

введите описание изображения здесь

  1. Перейдите в папку, в которую вы ее экспортировали, и откройте папку EntityFramework.pdb (я знаю правильно!), а затем углубитесь, пока не найдете файл EntityFramework.pdb и скопируйте его в папку bin (рядом с EntityFramework.dll).

  2. Перейдите к Visual StudioDEBUGOptions and Settings...Symbols, затем добавьте свою папку bin в Symbol file (.pdb) locations

введите описание изображения здесь

  1. Запустите проект и помолитесь, чтобы эти точки останова стали зрелыми.

Изменить: Иногда он запускает EF в режиме optimized, что делает отладочную работу практически бесполезной, что является целым рядом с этим вопросом - если это произойдет

  1. Перейдите к Visual StudioDEBUGGeneral → (в самом низу) Use Managed Compatibility Mode. Tick ​​и Run project (если он оптимизирован, затем отключите и запустите, затем снова нажмите и запустите, затем...)

введите описание изображения здесь

  1. Чтобы убедиться, что EF работает оптимизирован без необходимости ждать, пока он не достигнет точки останова Перейти к Visual StudioDEBUGWindowsModules. Затем, когда вы запускаете модули решений (2), должны появиться. Щелкните по нему и найдите EntityFramework.dll должен быть столбец с надписью Optimized (Yes= bad, No= вы можете его отладить).

введите описание изображения здесь

Надеюсь, это сэкономит вам некоторое время.

Ответ 2

Загрузите исходный код: структура сущности на codeplex

Кнопка загрузки находится в подменю на вкладке "Источник"

После загрузки:

  • Построить решение/проект

  • Перейдите в каталог bin NB: он не находится в обычном месте, его значение установлено на "..\..\bin\Debug\". См. Свойства проекта.

Здесь есть EntityFramework.pdb и EntityFramework.SqlServer.pdb.

Также подумал бы, что он будет доступен по умолчанию или проще.

Ответ 3

Один из способов - использовать dotpeek в качестве сервера символов (загрузить dll framework для платформы load add и добавить dotpeek serer адрес, скопированный из настроек dotpeek) - что отлично подходит для этого подхода, что он сгенерировал pdb-совместимое использование версии dll автоматически, что не так здорово - он не будет содержать исходные комментарии из исходного кода и т.д.