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")]