Отладка исходного кода .NET Core (Visual Studio 2019) - PullRequest
1 голос
/ 11 апреля 2019

Я использую веб-приложение Visual Studio 2019 и .NET Core 3. Я хотел бы отладить исходный код .NET Core, поэтому при возникновении ошибки я могу погрузиться в код и изучить его более подробно. Поскольку я не смог найти точное описание того, как это сделать (даже на сайте документации Microsoft), я постараюсь обобщить здесь то, что я знаю до сих пор.

У меня есть следующие параметры в Visual Studio:

    1. Включить только мой код
    2. Включить пошаговый перевод источника .NET Framework
    3. Включить поддержку исходного сервера
    4. Включить поддержку ссылки на источник

Первые два варианта являются взаимоисключающими. Я полагаю, что мне следует выбрать второй вариант, хотя я не понимаю, ".NET Framework" в этих вариантах включает в себя .NET Core?

Так как .NET Core имеет открытый исходный код и доступен на GitHub, я не понимаю 3-й и 4-й вариант. Третий должен позволять мне извлекать источник из Microsoft Symbol Servers (включают ли символы источник?), А четвертый должен позволять мне извлекать источник из GitHub? Нужен ли мне один или другой?

Сначала я ставлю точку останова на CreateHostBuilder в методе Main, выбираю 3-й вариант и запускаю приложение. После достижения точки останова я продолжаю заходить в код (F11), пока не появится сообщение о том, что «GenericHostBuilderExtensions.cs не найден». Он предлагает мне найти его, но я не знаю, где его найти.

Давайте попробуем снова, на этот раз выбрав 4-й вариант (и отменив выбор 3-го). Теперь, после достижения точки останова, VS предлагает мне скачать ранее упомянутый файл по Source Link. Подтвердите, но в результате появится сообщение «Ошибка исходной ссылки: DevOps Azure: проверка подлинности не удалась для всех учетных записей. Используйте« Файл -> Параметры учетной записи ... », чтобы добавить новую учетную запись или обновить учетные данные». Ну, я вошел в систему с моей учетной записью Microsoft, что еще мне делать?

Я повторяю все это снова, на этот раз выбирая 3-й и 4-й варианты. Результат тот же.

Теперь я выбираю другую опцию Source Link: «Возврат к Git Credential manager ...» и начинаю все сначала. Тот же результат.

Конечно, я активно гуглил и потратил довольно много времени, пытаясь найти решение, но я что-то упустил. Буду признателен за помощь в том, что именно упомянутые опции делают и как отлаживать, войдя в исходный код .NET Core.

1 Ответ

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

Может быть эта проблема может помочь решите вашу головоломку.

Точно так же, как vancem описывает в этой проблеме, все, что вам нужно сделать для отладки .NET core:

1.Установите флажок (Сервис -> Параметры -> Отладка -> Просто мой код).

2. Убедитесь, что флажок (Сервис -> Параметры -> Отладка -> Настройки символов -> Серверы символов Microsoft) установлен

3.Убедитесь, что флажок (Сервис -> Параметры -> Отладка -> Включить поддержку исходных ссылок) установлен

"GenericHostBuilderExtensions.cs не найден".

Что касается того, почему вы терпите неудачу здесь. Я думаю, что это похоже на вопрос, который я поставил выше. Для предварительного просмотра .net core 3.0 некоторые из его библиотек в настоящее время не имеют ссылок на исходники в github, поэтому vs не может их получить. (Как и .net core 2.0 в 2017 году, теперь это исправлено)

На самом деле, если вы воспользуетесь указанными выше опциями, вы найдете you can debug well .net core 2.x web-app, но может не получиться for not finding source links for .net core 3.0.

В качестве обходного пути:

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

2. И источник GenericHostBuilderExtensions.cs файла GenericHostBuilderExtensions.cs можно найти здесь . Я воспроизвел ту же проблему и разрешил ее, загрузив файл xx.cs и обнаружив его во время отладки.

3. Но я должен сказать, что этот путь занимает некоторое время. Поскольку не только этот файл не имеет исходного файла, мы столкнемся с аналогичными проблемами, и нам придется решать его, получая соответствующий исходный код из git, если только весь источник в .net core3.0 не имеет своих исходных ссылок. Но это может занять некоторое время, извините за это неудобство. И я предлагаю вам опубликовать его на github и поделиться ссылкой здесь. Заинтересованные участники помогут проголосовать за него.

Надеюсь, все вышеперечисленное поможет.

...