Отладка в пакеты NuGet (снова ..) VS 2017 - PullRequest
0 голосов
/ 10 января 2019

Я не могу войти в пакеты NuGet (размещенные в папке или на сервере - в моем случае MyGet), скомпилированные с символами при попытке отладки в библиотеке классов .NET Framework (в моем случае тестовый проект nUnit ). Я все перепробовал здесь -

Как отлаживать код в созданном мной пакете nuget

Подводя итог тому, что я пробовал:

1) Компиляция пакета с символами, добавление папки с символами.nupkg к решению, которое я отлаживаю в списке исходных файлов отладки. Добавление папки в список в Сервис -> Параметры -> Отладка -> Символы. Попытался «загрузить все модули» и «загрузить только указанные модули».

2) Включение / отключение «Просто мой код»

3) Ручное копирование файлов pdb из проекта пакета в папку bin моего проекта, не знаю, почему это все равно не будет работать, но не работает ...

4) Добавление пакета 'SourceLink.Create.CommandLine' в мой проект.

5) Использование сервера источника символов (предоставляется MyGet)

РЕДАКТИРОВАТЬ: Похоже, что отладчик использует версии во временных файлах ASP.NET, и только некоторые по какой-то причине загружают PDB. Независимо от того, что я использую, сервер символов, файлы PDB в каталоге bin, он требует только помещения DLL в файлы Temp ASP.NET.

Random symbols

Все библиотеки DLL здесь скомпилированы с опцией 'Full' 'Информация об отладке', не оптимизированы, установлены константы DEBUG / TRACE, имеют PDB внутри файла symbols.nupkg - в принципе, в этом нет ничего особенного с PDB в Temp ASP.NET и без: /

.snupkg не подходит для меня, так как я использую VS 2017.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Я наконец получил это для работы с этим процессом:

1) Настройте MyGet в качестве сервера NuGet и символов.

2) «Просто мой код» может быть включен.

3) «Поддержка исходного сервера» может быть отключена.

4) Параметры -> Отладка -> Пустой кэш символов.

5) Параметры -> NuGet -> Очистить кэш NuGet

6) Восстановление пакетов, сборка и запуск.

Это работает для меня последовательно с MyGet, но не с локально размещенными символами (в папке).

0 голосов
/ 11 января 2019

Отладка в пакеты NuGet (снова ..) VS 2017

Если вы не развернете пакет символов на сервере SymbolSource, вы не сможете войти в пакет nuget, даже если вы добавили папку символов в решение. Это потому, что Visual Studio не может проанализировать .pdb файл в пакете nuget .

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

И, как облегченное решение для отладки пакета nuget, вы можете использовать следующий метод:

Можно ли размещать как обычные, так и символьные пакеты в локальной ленте NuGet на общем сетевом ресурсе?

Кроме того, команда MS создает новое расширение .snupkg, которое создает оптимизированный отладочный пакет для всей экосистемы NuGet. Вы можете проверить документ для получения дополнительной информации:

Отладка пакетов NuGet и улучшения символов

Надеюсь, это поможет.

...