Отладка пакета NuGet с использованием Azure Devops Symbol Server, в результате чего класс не найден - PullRequest
0 голосов
/ 06 февраля 2020

В последнее время я играл с Azure Devops, чтобы разместить в качестве артефакта пакет NuGet, который я затем использовал бы в другом моем проекте. Пока все хорошо, мне удалось получить пакет и использовать его по назначению, но я хотел бы иметь возможность отладить его, поэтому мне пришлось добавить символы (насколько я понял?). Поэтому я добавил шаг sh в свой конвейер для символов, которые успешно выполняются, и файл .pdb публикуется. Я обращаюсь к своему каналу символов в Visual Studio, подключаясь к DevOps в настройках Debug> Symbols. При отладке кода он корректно загружает файл .pdb во временную папку, и все, пока выполняется код, остается там. Под модулями отладчика> windows> он фактически говорит мне, что символы правильно загружаются во время отладки, но как только я пытаюсь войти в код, я получаю ошибку: «.cs not found».

IssueAsShown

Я пробовал несколько вещей, таких как очистка кэша символов, изменение настроек в отладке для «только собственный код» и «разрешить поддержку исходного сервера» et c , Но безрезультатно.

Я пропустил шаг или я делаю что-то ужасно неправильно?

1 Ответ

1 голос
/ 07 февраля 2020

Отладка пакета NuGet с использованием Azure Сервер символов Devops, в результате чего класс не найден

Это потому, что вы не включили Source Link, которая поддерживает Visual Studio и знает, где ее искать для загрузки. исходный код при отладке.

Для отладки исходного кода нам необходим исходный код, pdb (или / Z7) содержит отладочную информацию, которая похожа на отображение исполняемого кода и вашего исходного кода. С помощью pdb VS отладчик знает, где в исходных файлах находится каждая инструкция, но ему все еще нужны исходные файлы, чтобы показать вам код.

Итак, мы должны включить ссылку на источник. Отредактируйте файл .csproj и включите следующий код в первый элемент PropertyGroup:

<PublishRepositoryUrl>true</PublishRepositoryUrl>
 <EmbedUntrackedSources>true</EmbedUntrackedSources>

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

На С другой стороны, вы также можете добавить исходный код в пакет nuget в качестве упрощенного решения:

Проверьте мою предыдущую ветку для получения подробной информации.

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

...