Отладка пакета Nuget не работает - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь создать отладочный пакет nuget. Итак, я начинаю с "Создание пакетов символов" . Создать пакет, используя nuget pack PackageARM.nuspec -Symbols

PackageARM.nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>PackageARM</id>
    <version>1.0.15</version>
    <authors>PackageARM</authors>
    <owners>PackageARM</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETStandard2.0" />
    </dependencies>
  </metadata>
  <files>
        <file src="bin\Release\netstandard2.0\*.pdb" target="lib\netstandard2.0" />
        <file src="bin\Release\netstandard2.0\*.dll" target="lib\netstandard2.0" />
        <file src="**\*.cs"  target="src" />
    </files>
</package>

И отправьте его в nuget: https://www.nuget.org/packages/PackageARM/1.0.15

Затем снимите флажок Enable Just My Code и отметьте Enable source server support в VS 2017. Также я попытался добавить серверы символов: https://www.nuget.org, https://nuget.smbsrc.net/, но безрезультатно.

Когда я пытаюсь перейти в метод из пакета, используя F11, он просто переходит на следующую строку. Что я пропустил?

Мой файл pdb содержит путь к файлу .cs, который является 'C: \ project \ ProjectARM \ Class1.cs', это нормально? как могут отлаживать другие пользователи, если у них нет этого пути с источником?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Я долго с этим боролся. Вот самый простой способ, который я нашел, который работает многократно:

  • Получите исходный код и создайте пакет nuget локально. Вам нужно будет перейти к версии пакета. Надеемся, что автор предоставил .nuspec, чтобы упростить строительство.

Создать локальный источник nuget:

  • Поместите файл .nuget, который вы только что создали, в C: \ Nuget (например)

  • В Visual Studio выберите Инструменты / Параметры / Диспетчер пакетов Nuget / Источники пакетов

  • Нажмите зеленый (+) значок. Добавьте путь к локальному пакету nuget, который вы создали выше (C: \ Nuget), и переместите источник пакета в верхнюю часть списка.

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

  • Запустите отладку, и вы сможете перейти к коду для пакета nuget.

Я могу установить точку останова в исходном коде, откуда я собираю пакет nuget, и он прерывается при запуске кода.

Все вышеперечисленные шаги немного нервничают, и вам, возможно, придется поиграть с ним несколько раз, чтобы заставить его работать.

Дайте мне знать в комментариях, если это работает для вас. И если так, я был бы признателен за повышение :)

0 голосов
/ 08 мая 2018

как другие пользователи могут отлаживать, если у этого пути нет источника?

Поскольку вы не могли получить доступ к пакету символов с сервера символов, мы не смогли отладить таким образом. Я хотел бы предоставить вам обходной путь отладки пакета nuget.

  1. Поместите файл pdb и исходный код в пакет NuGet вместе с dll.
  2. Добавьте исходный код в исходные файлы отладки для решения, которое ссылается на пакет.

Подробнее о шаге 1:

Я проверил ваш пакет nuget на nuget.org и обнаружил, что вы уже поместили .pdb и файл исходного кода в пакет NuGet вместе с .dll.

Подробнее о шаге 2:

Когда решение открыто, щелкните правой кнопкой мыши Решение, выберите Свойства ... Общие свойства ... Отладка исходных файлов и добавьте корневой исходный каталог для соответствующей двоичной ссылки (Добавьте путь файла .cs в папке Packages после установки пакета nuget):

enter image description here

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

...