Visual Studio не будет читать .pdb из моего nupkg - PullRequest
0 голосов
/ 24 апреля 2019

Я сгенерировал несколько пакетов nuget, содержащих .pdbs со следующим:

<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

Я убедился, что .pdbs находятся внутри .nupkg, сгенерированного в папке lib / * / рядом с dll.

Однако, когда я использую эти пакеты nuget в Visual Studio 2017, он извлекает только файлы .dll, а не .pdb. В результате я не могу отладить пакет.

Что я делаю неправильно?

1 Ответ

0 голосов
/ 25 апреля 2019

Поскольку вы можете убедиться, что файл .nupkg содержит файл .pdb. пожалуйста, убедитесь, что оба проекта находятся в режиме отладки.

Использование пакета nuget локально иногда имеет некоторые отличия от его установки с nuget.org. Исходный файл .pdb не найден в решении. По умолчанию .pdb будет располагаться по пути, например: C:\Users\xxx\.nuget\packages\PackageName\xxx.

Обновление:

  1. Если проект пакета nuget и проект, который его использует, находятся на одном компьютере. Свойство AllowedOutputExtensionsInPackageBuildOutputFolder достаточно. Поскольку у вас есть исходные файлы на той же машине, и механизм отладки может легко найти его, чтобы вы могли войти в него.

  2. Но если для сценария, подобного этому: Вы разработали пакет nuget. И поделиться этим с другими членами команды. Чтобы сделать их можно Step into, вы должны встроить файлы xx.cs в .nupkg.

При таких обстоятельствах AllowedOutputExtensionsInPackageBuildOutputFolder может не работать. Я не могу найти способ встраивать исходные файлы, используя его. Возможно, вам придется использовать nuget pack command как в этом выпуске . На самом деле, способ, которым Стефан упаковал проект, верен. Я проверил, как это работает, и будет вставлять исходные файлы и .dll и .pdb в .nupkg. Конечно, таким образом вам нужно добавить путь к репо исходных файлов с помощью Solution => Properties => Debug Source files: enter image description here

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

Кроме того, вы можете рассматривать ссылки на источники в качестве управления исходным кодом, чтобы не настраивать путь к исходным данным в свойствах Solution =>.

...