У меня есть проект (A), который ссылается на сборку из библиотеки классов внешнего проекта (B), которая находится в другом против решения.
Мне еще предстоит понять, как я могу эффективно отлаживать библиотеку классов из B при запуске программы из проекта A. Есть ли что-то, что я должен включить в проекте B, например, отладочная информация и т. Д., Чтобы я мог войти во время отладки из A?
Заранее спасибо.
источник
Это прослушивало меня в течение некоторого времени. Обычно я перестраиваю свою внешнюю библиотеку в режиме отладки, затем копирую файлы .dll и .pdb в корзину моего сайта. Это позволяет мне войти в библиотечный код.
источник
Предположим путь
проект
A
проект
B
и dll ProjectB находится в
Для отладки в
ProjectB
сProjectA
, выполните следующие действияB
«s длл с DLL файлы.PDB
вProjectA
» ы составителя каталога.ProjectA
. Когда код достигает той части, где вам нужно вызвать метод или события dll во время отладки, нажмите,F11
чтобы перейти к коду dll.ПРИМЕЧАНИЕ: НЕ ПРОПУСТИТЕ КОПИРОВАНИЕ ФАЙЛА .PDB
источник
Я запускаю два экземпляра Visual Studio - один для внешнего DLL и один для основного приложения.
В свойствах проекта внешней библиотеки установите следующее:
События сборки:
copy /y "$(TargetDir)$(TargetName).dll" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).dll"
copy /y "$(TargetDir)$(TargetName).pdb" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).pdb"
Отлаживать:
Запустите внешнюю программу:
C:\<path-to-main>\bin\debug\<AppName>.exe
Рабочий каталог
C:\<path-to-main>\bin\debug
Таким образом, всякий раз, когда я собираю внешнюю DLL, она обновляется в каталоге основного приложения. Если я нажимаю отладку из проекта внешней библиотеки DLL - основное приложение запускается, но отладчик поражает только точки останова во внешней библиотеке DLL. Если я нажму на отладку из основного проекта, основное приложение будет работать с самой последней созданной внешней библиотекой DLL, но теперь отладчик достигает только точек останова в основном проекте.
Я понимаю, что один отладчик будет выполнять работу для обоих, но мне легче поддерживать эти два способа прямо.
источник
[по словам Мартина Беккета, парня, который прислал мне этот ответ]
Вы можете отлаживать во внешней библиотеке.
На вкладке настроек проекта найдите «каталоги visual studio», в поле «исходный код» укажите путь к источникам openCV. Затем убедитесь, что файлы .pdb для каждой DLL-библиотеки отладки находятся в том же каталоге, что и DLL.
источник
У меня была похожая проблема, так как мои контрольные точки в проекте (B) не были затронуты. Мое решение состояло в том, чтобы перестроить проект (B), а затем отладить проект (A), поскольку библиотеки должны были быть обновлены.
Visual Studio должна позволять вам отлаживать во внешней библиотеке.
источник
NuGet ссылки
Предположим, что -Project_A (создает project_a.dll) -Project_B (создает project_b.dll) и ссылки Project_B на Project_A с помощью пакетов NuGet, а затем просто скопируйте project_a.dll, project_a.pdb в папку Project_B / Packages. По сути, это должно быть скопировано в / bin.
Теперь отладка Project_A. Когда код достигает той части, где вам нужно вызвать метод или события dll во время отладки, нажмите F11, чтобы перейти к коду dll.
источник