Я опубликовал несколько частных/внутренних библиотек как пакеты NuGet, используя опцию символов. Пакеты и символы размещены на внутреннем сетевом ресурсе. Как я могу войти в эти пакеты при отладке?
Когда я перехожу к коду из этих пакетов, Visual Studio отображает страницу "No Source Available" / "No Symbols Found". Щелчок на "Load Symbols" разрешает только pdb-файлы, но не пакеты символов.
Эти пакеты не подходят для публикации на NuGet Gallery/SymbolSource.
Какую команду вы использовали для создания пакетов с символами? Я пытался сделать то же самое nuget.exe pack -Prop Configuration=Release Framework.csproj -Symbols
Это создает два файла: Framework.nupkg и Framework.symbols.nupkg. Я поместил эти файлы на сетевой ресурс, использовал их из другого проекта, и отладка работала нормально.
Пробовали ли вы поместить файлы .nupkg и .symbols.nupkg на локальный диск вместо сетевого ресурса?
Есть несколько вариантов; один из них - установить & настроить свой собственный сервер символов.
Вы также можете загрузить Inedo's ProGet, включить службу символов на целевом канале, а затем опубликовать свои пакеты в ProGet. Все это можно сделать с помощью бесплатной версии ProGet.
Отказ от ответственности - моя основная работа в Inedo_
Существует также инструмент под названием GitLink (https://github.com/GitTools/GitLink), которую можно вставить в файл символа ссылки на файлы в Git из исходных.
Вы можете создать свой собственный сервер symbolsource внутри компании, используя эти сетевые ресурсы. Вы можете найти пошаговое руководство в моем блоге.
По сути, все сводится к созданию пустого MVC-приложения и выполнению следующих действий
Install-Package SymbolSource.Server.Basic
После этого необходимо настроить инфраструктуру хостинга и сконфигурировать Visual Studio и агенты сборки.
Как мы это делаем (и работает):
Ссылки которые могут быть полезны:
Я обнаружил, что это не'т работать на всех. Пакет NuGet ссылки закрыты и не могут быть использованы в отладчике. Что я сделал вместо этого был исключить ссылку на сборку из проекта и вместо него добавили ссылку на сборку debug DLL непосредственно на пути.
Затем, чтобы остановить отладчик где-то в этот код, я вставил системный вызов.Диагностика.Отладчика.Перерыв();
в этом коде. Когда не работает, отладчик остановится на той строке, которая по сути является кодом определенных останова. Это откроет правильный исходный файл и перейти к строке автоматически.
Откройте проект библиотеки в секунду против экземпляра и передвигаться называет "ломаются" как надо и перестроить библиотеку. Когда это сделано, удалить эти вызовы из библиотеки кода и восстановить исходную ссылку (возможно, потребуется переустановить пакет NuGet).