2010-04-12 3 views
6

Мне нужно отладить проект библиотеки классов, который предоставляется основному проекту (веб-сайту ASP.NET) в виде DLL. Например, мне нужно поставить некоторые точки останова, чтобы проверить, что происходит во время выполнения..NET - Как отлаживать DLL?

Я попытался How to: Debug from a DLL Project, к сожалению, это не сработало ...

Как я могу это сделать?

PS: У меня есть исходный код!

+1

И у вас нет исходного кода библиотеки DLL или это библиотека .NET? – Ivo

+0

@GordonB Я не могу этого сделать. Мне нужно запустить его как внешнюю сборку! –

ответ

3

Debugging DLLs in Visual Studio (см. № 2 в списке) может быть тем, что вы ищете (полное раскрытие: да, это мой личный веб-сайт).

  • С помощью метода # 1 вы не можете просматривать переменные.

  • С помощью метода # 2, шаг № 2, если вы не можете открыть проект в том же экземпляре Visual Studio, вы можете запустить двоичный файл проекта (то есть запустить его за пределами Visual Studio, но сделать обязательно запустите отладочную версию.) и присоедините к нему отладчик Visual Studio (меню Отладка ->Приложите к процессу).

Вот шаги для метода № 2, так что никто не должен следовать по ссылке:

Прикрепление процесс, используя для проекта DLL. Это связано с подключением отладчика Visual Studio к запущенному процессу.

  1. Открыть проект DLL в Visual Studio.
  2. Запуск приложения, использующего DLL. Это приложение не может быть запущено с еще одним экземпляром Visual Studio, так как процесс уже имеет прикрепленный к нему отладчик .
  3. Здесь вы можете добавить контрольные точки и пройти через DLL-код, загруженный в Visual Studio (хотя точка останова отключена такая же, как в методе 1).
+0

Это ТОЧНО, что я искал! Удивительные советы. Спасибо! –

+0

Вопрос пожалуйста. Я пробовал # 1, и он показал мне трассировку стека, но как я могу это сделать, если я хочу посмотреть мои переменные? Я не понял # 2. Как запустить проект, который использует DLL в том же экземпляре visual studio, где загружен проект DLL? –

+0

@Amokrane, см. Править. –

8

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

Вам нужно снять флажок "Включить Just My Code": меню Инструменты ->Опции ->Debugging ->Enable Just My Code

ПРИМЕЧАНИЕ: Это будет работать только для сборок .NET.

+0

Но как отлаживать код? –

+0

Если у вас есть файлы PDB и исходные файлы, все, что вам нужно сделать, это установить точку останова где-то в вашем коде, который вызывает внешнюю сборку. Visual Studio автоматически подберет символы и загрузит их, что позволит вам войти в код. Если у вас нет исходных файлов, есть программы, которые могут перестроить представление кода из PDB. Если у вас нет файлов .pdb, все становится намного сложнее. – Josh

+0

@Amokrane: вам нужно будет войти в код. Поместите отладчик в свой код на место, прежде чем вы вызовете некоторые методы из библиотеки DLL. Войдите в метод, нажав F11. – Marek

0

Когда вы строите проект библиотеки классов, файл .pdb создается в папке Debug или Release этой библиотеки классов. Эти два файла ссылаются на проект ASP.NET, когда вы щелкаете правой кнопкой мыши и выбираете опцию «Добавить ссылку» и указываете на DLL-файл проекта библиотеки классов.

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