Отладка частных пакетов NuGet?
Я опубликовал некоторые частные/внутренние библиотеки как пакеты NuGet, используя опцию символов. Пакеты и символы размещаются во внутренней сети. Как я могу входить в эти пакеты при отладке?
Когда я перехожу к коду из этих пакетов, Visual Studio отображает страницу "Нет источника в наличии" / "Нет символов, найденных". Нажатие "Load Symbols" позволяет только файлы pdb, а не пакеты символов.
Эти пакеты не подходят для публикации в галерее NuGet/SymbolSource.
Ответы
Ответ 1
Какова команда, которую вы использовали для создания пакетов с символами? Я попытался сделать то же самое. nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols
Это создает два файла: Framework.nupkg и Framework.symbols.nupkg. Я помещал эти файлы в общий сетевой ресурс, использовал их из другого проекта, и отладка работала нормально.
Вы пытались поместить файлы *.nupkg и *.symbols.nupkg на локальный диск вместо общего сетевого ресурса?
Ответ 2
Есть несколько вариантов; один - настроить и настроить собственный сервер символов.
Вы также можете скачать Inedo ProGet, включить отображение символа в целевом фиде, а затем опубликовать свои пакеты в ProGet. Все это можно сделать с бесплатной версией ProGet.
отказ от ответственности - моя дневная работа находится на Inedo
Ответ 3
Существует также инструмент под названием GitLink (https://github.com/GitTools/GitLink), который может вставлять в ссылки файла символа на файлы версии GIT ваш источник.
Ответ 4
Вы можете самостоятельно настроить свой собственный сервер источника ресурсов, используя эти сетевые ресурсы.
В моем блоге вы можете найти пошаговое руководство.
В основном это сводится к созданию пустого приложения MVC и запускается
Install-Package SymbolSource.Server.Basic
Оттуда вам нужно настроить инфраструктуру хостинга и настроить Visual Studio и создавать агенты.
Ответ 5
Как мы это делаем (и работает):
- Создать "*.symbols.nupkg"
- Разверните пакет символов на сервер SymbolSource (частный)
- Настройка IDE
- Добавить требуемую библиотеку для проекта с использованием NuGet (с нашего сервера SymbolSource)
- Debug!
Ссылки, которые могут быть полезны:
-
-
Установка сервера SymbolSource
-
Важно: "Средства отладки для Windows" не будут установлены, если он обнаружит новую версию Visual С++ Redist в системе, чем она нуждается/ожидает
-
-
Конфигурация Vs для отладки с использованием SymbolSource
-
URL, который нужно добавить, похож на http://your.symbolsource-server.com:[port]/[appContext]/WinDbg/pdb
Ответ 6
Я обнаружил, что он вообще не работает. Ссылки на пакеты NuGet закрыты и не могут использоваться в отладчике. Вместо этого я удалил ссылку на сборку из проекта и вместо этого добавил ссылку на сборку DLL для DLL напрямую по пути.
Затем, чтобы отладчик остановился где-то в этом коде, я вставил вызов System.Diagnostics.Debugger.Break();
в этот код. При запуске отладчик останавливается на этой строке, которая в основном является определяемой кодом точкой останова. Это откроет правильный исходный файл и автоматически перейдет к этой строке.
Откройте проект библиотеки во втором экземпляре VS и передвигайтесь по вызовам Break
по мере необходимости и перестройте библиотеку. Когда это будет сделано, удалите эти вызовы из кода библиотеки и восстановите исходную ссылку (возможно, потребуется переустановить пакет NuGet).