Отлаживать частные пакеты NuGet?

Я опубликовал некоторые частные / внутренние библиотеки в виде пакетов NuGet, используя опцию символов. Пакеты и символы размещены во внутренней сетевой папке. Как я могу войти в эти пакеты при отладке?

Когда я перехожу к коду из этих пакетов, Visual Studio отображает страницу "Источник недоступен" / "Символы не найдены". Нажатие "Загрузить символы" разрешает только файлы pdb, но не пакеты символов.

Эти пакеты не подходят для публикации в галерее NuGet /SymbolSource.

6 ответов

Какую команду вы использовали для генерации пакетов с символами? Я пытался сделать то же самое точно nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols Это создает два файла: Framework.nupkg и Framework.symbols.nupkg. Я поместил эти файлы в общий сетевой ресурс, использовал их из другого проекта, и отладка работала нормально.

Вы пытались поместить файлы *.nupkg и *.symbols.nupkg на локальный диск вместо сетевой папки?

Есть пара вариантов; Одним из них является настройка и настройка вашего собственного сервера символов.

Вы также можете загрузить ProGet от Inedo, включить обслуживание символов на целевом фиде, а затем опубликовать свои пакеты в ProGet. Все это можно сделать с помощью бесплатной версии ProGet.


Отказ от ответственности - моя дневная работа в Inedo

Существует также инструмент под названием GitLink ( https://github.com/GitTools/GitLink), который может вставлять в файл символов ссылки на версионные файлы GIT вашего источника.

Вы можете настроить свой собственный сервер символов с помощью этих общих сетевых ресурсов. Вы можете найти пошаговое руководство в моем блоге.

В основном все сводится к созданию пустого приложения MVC и запуску

Установить-пакет SymbolSource.Server.Basic

После этого вам необходимо настроить инфраструктуру хостинга, а также настроить Visual Studio и агенты сборки.

То, как мы это делаем (и работает):

  1. Генерация "*.symbols.nupkg"
  2. Развертывание пакета символов на сервере SymbolSource (частный)
  3. Настроить IDE
  4. Добавьте необходимую библиотеку в проект с использованием NuGet (с нашего сервера SymbolSource)
  5. Debug!

Ссылки, которые могут быть полезны:

    • Установка сервера SymbolSource

    • Важное замечание: "Средства отладки для Windows" не будут установлены, если обнаружит более новую версию Visual C++ Redist в системе, чем это требуется / ожидается

    • Против конфигурации для отладки с использованием SymbolSource

    • URL для добавления похож на http://your.symbolsource-server.com:[port]/[appContext]/WinDbg/pdb

Я обнаружил, что это не работает вообще. Ссылки на пакеты NuGet закрыты и не могут использоваться в отладчике. Вместо этого я удалил ссылку на сборку из проекта и вместо этого добавил ссылку на сборку отладки DLL непосредственно по пути.

Затем, чтобы остановить отладчик где-то в этом коде, я вставил вызов System.Diagnostics.Debugger.Break(); в этом коде. При запуске отладчик остановится на этой строке, которая в основном является точкой останова, определенной в коде. Это откроет правильный исходный файл и автоматически перейдет к этой строке.

Откройте проект библиотеки во втором экземпляре VS и перемещайтесь по Break вызывает по необходимости и перестраивает библиотеку. По завершении удалите эти вызовы из кода библиотеки и восстановите исходную ссылку (возможно, потребуется переустановить пакет NuGet).

Другие вопросы по тегам