krishna Dev Ответов: 2

Visual studio 2015 enterprise отладка нескольких решений


Привет,
У меня есть два решения, скажем, решение А и решение Б. Здесь у решения B есть библиотека классов,которая упоминается в решении A. Теперь я хочу шагнуть через решение B из решения a во время его отладки.

Пожалуйста, помогите.

большое спасибо

Что я уже пробовал:

Я попробовал это, вроде как работало, но не полностью.
а) открыл оба решения в отдельных экземплярах VS2015 с точками останова в нем.
б) снимите флажок "Включить только мой код".
Запустил решение А и ударил точку останова в решении а, затем я сделал F11 для шага в решение В. Он был включен, но соответствующий файл (который находится в Solution B) открыт в том же экземпляре VS2015, где работает Solutions.

Я хочу, чтобы отладчик перескочил на экземпляр Solutions B VS2015.

Я попытался даже прикрепиться к процессу, он делал то же самое вместе с экземпляром SolutionB VS2015, который перешел в какое-то странное блокирующее состояние (сверху было четыре иконки. Перейдите в живое визуальное дерево,включите выделение, отображение макета украшателей, отслеживание сфокусированного элемента)

2 Ответов

Рейтинг:
1

Wendelius

Насколько я знаю, вы не можете использовать два отладчика для одного и того же процесса.

Если решение а является исполняемым, используйте для этого отладчик. Перед началом сеанса отладки откройте нужный файл из решения B в Visual Studio, где открыто решение A. Убедитесь, что вы открыли файл решения B из правильной папки, папки, из которой компилируется сборка B, на которую вы ссылаетесь.

Поместите точку останова в нужную строку кода во вновь открывшемся файле и начните отладку. Теперь он должен остановиться, как только будет достигнута точка останова.


krishna Dev

Решение a-это консольное приложение, а решение B-библиотека классов. Я скомпилировал решение и добавил его dll &pdb в решение. Открыл оба решения отдельно в разных экземплярах VS2015. Но не повезло

Wendelius

Как я уже сказал, попробуйте использовать только один экземпляр Visual Studio. Откройте в нем решение а, а также откройте файл из решения В. Поместите точку останова в этот файл и запустите отладчик. Здесь есть очень похожий разговор: Шаг в ссылочную библиотеку DLL[^]

krishna Dev

В настоящее время он работает именно так. Открытие файла Solutions B в программе Solutions a во время отладки. Я могу с радостью пройти через файл Solutions B, но я ищу отладчик, который должен перейти к новому экземпляру VS2015, где был открыт Solutions B.
Мне нужен этот способ, потому что в решении B есть еще несколько зависимостей (например, решение-B зависит от решения-C)

Wendelius

Как было сказано в самом начале, я понимаю, что вы можете использовать только один отладчик для одного процесса. Вы не можете переключить отладчик во время сеанса отладки.

Если у вас есть pdb для других сборок, вы также должны иметь возможность перейти в их код. Просто убедитесь, что вы ссылаетесь на все сборки в сборке A.

Кроме того, вы можете заранее открыть интересный файл из assenbly C, D, ... и при необходимости разместить точки останова.

Рейтинг:
0

Richard MacCutchan

Для этого вам понадобится только один экземпляр отладчика. Начните отладку исполняемого проекта и, когда он вызовет библиотеку классов, используйте кнопку "step into" (или F11), чтобы следовать по пути через код библиотеки.


krishna Dev

Я сделал. но отладчик не прыгает к другому решениюb, а вместо этого открывает тот же файл класса (файл предварительного просмотра) с экземпляром in Solutions. Символы и dll загружены успешно

Richard MacCutchan

Конечно, это не так; вы не можете запустить DLL в изоляции.