Visual Studio не будет отлаживать в DLL, на которую ссылаются (из того же решения) - PullRequest
11 голосов
/ 29 марта 2010

У меня есть решение Visual Studio 2008 с 2 проектами. DLL, A и веб-приложение, B.

B имеет ссылку на проект A, а A.dll и A.pdb копируются в каталог bin / bin B.

Все настроено на компиляцию в режиме отладки.

Я могу нормально запустить веб-сервер cassini и отладить веб-приложение B, но когда я вызываю метод в A.dll, нажатие клавиши F11, чтобы войти в него, не вступает в него, а переходит его. Я хочу вмешаться.

Есть идеи, почему я не смогу войти в исходный код A?

Редактировать: Дополнительная информация

У меня не проверен «только мой код».

Я могу установить точку останова в DLL, и она будет отображаться в виде красного круга (а не пустого), но она никогда не будет нажата.

Хммм ... Я только что изменил код в DLL, которая вызывается, чтобы начать с

throw new Exception("Hello");

И я не получаю исключения. Это довольно подозрительно ...

Ответы [ 5 ]

18 голосов
/ 29 марта 2010

Наиболее вероятная проблема заключается в том, что Visual Studio не считает DLL частью "вашего кода". Обойти это можно, отключив функцию отладки «Просто мой код».

  • Инструменты -> Параметры -> Отладка
  • Снимите флажок «Включить только мой код»

После этого вы сможете без проблем войти в свой код.

4 голосов
/ 29 марта 2010

Aha!

Метод в B, который я вызывал, вернул IEnumerator<SomeObject>. Это был блок итератора с ключевыми словами yield, поэтому он не выполнялся (поскольку я еще не написал для потребителя).

вздыхает

3 голосов
/ 30 июля 2015

Тем, кто говорит отключить «Просто мой код», он специально заявляет, что два проекта находятся в одном решении, поэтому оно неприменимо. Единственный логический вывод - ошибка пользователя / недоразумение.

2 голосов
/ 29 марта 2010

Возможно, в ваших настройках отладки установлена ​​опция «Просто мой код». Выключите это, и вы можете перейти в код из DLL.

0 голосов
/ 05 сентября 2018

Проверьте, есть ли в DLL строка, подобная следующей, в файле AssemblyInfo.cs. Возможно, вам придется временно закомментировать эту строку, чтобы войти в DLL во время отладки.

[assembly: AssemblyKeyFile("..\\..\\something.snk")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...