Visual studio не будет отлаживаться в ссылочную DLL (из того же решения)

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

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

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

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

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

Edit: Дополнительная Информация

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

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

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

throw new Exception("Hello");

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

5 ответов


наиболее вероятной проблемой является то, что Visual Studio не считает DLL частью "вашего кода". Способ обойти это-отключить функцию отладки "только мой код".

  • Сервис -> Параметры -> Отладка
  • Снимите Флажок "Включить Только Мой Код"

после этого вы должны иметь возможность войти в свой код без инцидентов.


Аха!

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

вздох


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


У вас, вероятно, есть опция "только мой код", установленная в ваших параметрах отладки. Выключите это, и вы можете войти в код из dll.


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

[assembly: AssemblyKeyFile("..\..\something.snk")]