Отладка с помощью различных решений в Visual Studio - PullRequest
43 голосов
/ 13 марта 2010

В настоящее время у меня есть решение A, которое содержит базу доменного уровня и решение B, которое ссылается на двоичные файлы из решения A. Есть ли способ прямой отладки от одного к другому с двумя случаями открытия Visual Studio (по одному для каждого решения? ). Я читал, что вы можете просто добавить существующие проекты из решения A в решение B. Есть ли другое решение, которое работает? Я пытался напрямую подключить решение A к исполняемому файлу в решении B, но он не позволяет мне подключать несколько отладчиков к одному приложению.

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

Спасибо

Ответы [ 7 ]

33 голосов
/ 13 марта 2010

Невозможно, чтобы 2 экземпляра Visual Studio отлаживали один и тот же процесс. Это ограничение Windows, и большинство других операционных систем в том, что максимум один процесс может отлаживать другой.

Это отлично поддерживаемый сценарий, хотя для отладки двоичных файлов, которые не являются частью вашего решения. Как вы уже заметили, вы можете легко перейти в двоичные файлы из решения B во время отладки из решения A.

Тем не менее, одним из элементов, который здесь будет мешать, является функция отладки под названием «Просто мой код». Эта функция направлена ​​на то, чтобы свести к минимуму отладку только к коду в вашем решении. Отлично подходит для обычных решений, но плохо, когда вы отлаживаете произвольные двоичные файлы. Скорее всего, это вызывает много проблем вокруг точек останова, которые вы видите. Вы захотите отключить его, выполнив следующее

  • Инструменты -> Параметры -> Отладка
  • Не отмечен «Включить только мой код»
17 голосов
/ 13 марта 2010

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

Однако вы можете просто открыть файл .cpp / .cs / what из решения B в копию решения A Visual Studio и установить точки останова. Он все равно будет работать, даже если эти файлы на самом деле не являются частью решения.

16 голосов
/ 13 марта 2010

Что если вы явно загрузите символы из решения A?

Если вы идете в Инструменты-> Параметры-> Отладка-> Символы, вы можете указать его на файл .pdb из решения А.

Затем вы можете увидеть, загружаются ли символы из ваших двоичных файлов, перейдя в Debug-> Windows-> Modules во время отладки.

2 голосов
/ 23 февраля 2017

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

Перейдите по этой ссылке

Одновременная отладка нескольких проектов в Visual Studio

1 голос
/ 02 сентября 2014

Вот что я сделал.

Допустим, проект из решения A ссылается на проект из решения B, а я хочу выполнить отладку в проекте решения B из проекта решения A.

Откройте решение B в Visual Studio. Задайте для свойств проекта значение «Использовать локальный сервер IIS Wb», укажите URL-адрес проекта и создайте виртуальный каталог.

Открыть решение A в другом экземпляре Visual Studio. Установите для свойств проекта значение «Использовать локальный сервер IIS Wb» и установите флажок «Использовать IIS Express», задайте URL-адрес проекта и создайте виртуальный каталог.

Нажмите F5 и запустите отладку экземпляра Solution B Visual Studio. Затем нажмите клавишу F5 и начните отладку Solution A экземпляра Visual Studio. Теперь оба экземпляра Visual Studio будут в режиме отладки. Начните с решения A сейчас, и вы сможете выполнить отладку в решении B, как если бы оба проекта были в одном решении.

Ключом здесь является «Использовать IIS express» для одного и «Локальный веб-сервер IIS» для другого проекта. Это позволит вам запустить два отладчика одновременно.

1 голос
/ 29 ноября 2013

Для этого есть простое исправление.

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

0 голосов
/ 18 октября 2016

Убедитесь, что .dll и .pdb находятся в корзине.Вы сможете выполнить отладку в другом решении, открытом в другой Visual Studio.

У нас обычно есть папка (например, Зависимости), на которую ссылаются библиотеки.Поместите dll в эту папку.Dll помещаются в эту папку, когда мы собираем ссылочный проект (используя события Build, есть и другие способы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...