DotPeek Проблема Отладка стороннего.dll

Я использую dotPeek v1.2 с VS2013 Update 3 попытаться отладить ссылочный код C# .dll. Я следовал всем указаниям из следующего урока: Использование dotPeek в качестве сервера символов (http://localhost:33417/ устанавливается как местоположение символа и т. д.) Честно говоря, я прочитал кучу статей, подобных этой и этой, прочесал все необходимые настройки и действительно не видел ни одного рабочего решения отладки стороннего не-фреймворка. dll, так что я не уверен, что это полностью рабочий продукт с этой точки зрения.

Regardelss, dotPeek должен разрешать, когда сервер символов запускается и отлаживать код из сторонних сборок из VSNET в соответствии с их документацией. Я знаю, какие.dll выбрать для dotPeek, потому что я проверил их путь в Debug -> Windows -> Modules.

У меня случается ReSharper также установлен, что позволяет мне декомпилировать, когда я щелкаю правой кнопкой мыши строку кода и выбираю "Перейти к объявлению". Проблема в том, что сервер символов ничего не делает для обслуживания кода во время отладки. Скорее всего, декомпилированный источник, предоставленный ReSharper, является тем, к чему VS.NET стремится подключиться. Проблема в том, что я всегда получаю следующую ошибку:

Исходный файл: C:\Users\username\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches_ReSharper.Meijer.Ecommerce.Nav.WebAppServices.-382002776\ Декомпилятор \ декомпилятор \53\66e7ccc2\MyClass.cs

Модуль: C:\Projects\MyProject\bin\Debug

Процесс: [24808] vstest.executionengine.x86.exe

Исходный файл отличается от того, когда модуль был собран. Хотели бы вы, чтобы отладчик использовал его?

Если я скажу "да" и шаг в отладчике окажется в строках, которые не существуют в файле и не синхронизированы. Это имеет смысл, так как показывает .cs класс из местоположения "Исходный файл", но DLL-файл загружен из /bin/Debug

Тем не менее, я не понимаю, почему это происходит в любом случае, так как dotPeek должен обслуживать загруженные символы из /bin/Debug и не пытаться зайти в какой-либо декомпилированный источник ReSharper представил.

Как мне настроить это так VS2103 будет фактически отлаживать символы и код, обслуживаемый из dotPeek?

1 ответ

Решение

Одна большая проблема заключается в том, что вам нужно убедиться, что у вас есть правильный путь к каталогу кэша на странице Инструменты -> Параметры -> Отладка -> Символы.

Кроме того, на главной странице параметров отладки (Инструменты -> Параметры -> Отладка -> Общие) убедитесь, что вы:

  • Снимите флажок "Включить только мой код"
  • Снимите флажок "Включить пошаговое выполнение.NET Framework"
  • Установите флажок "Включить поддержку исходного сервера"
  • Снимите флажок "Требовать исходные файлы, чтобы точно соответствовать оригинальной версии

Стоит также проверить параметр "Печать диагностических сообщений исходного сервера в окно вывода" и проверить окно вывода при попытке перейти к стороннему коду. Надеюсь, следует указать на любые вопросы.

Вот как у меня все настроено, и я могу отлаживать сторонние dll (очевидно, dotPeek должен загрузить DLL в обозревателе сборок, прежде чем вы начнете отладку тоже).

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