Вам когда-нибудь приходилось отлаживать и работать с кодом зависимых библиотек NuGet или .NET, которые не являются частью вашего решения? Сегодня отладка через них не так проста, как отладка ваших проектов, которые являются частью вашего решения. Начиная с Visual Studio 2022 Preview 3, мы добавляем новый узел «Внешние источники» в обозреватель решений, который значительно упростит отладку файлов внешних источников. Этот узел появляется во время отладки и отображает источники для управляемых модулей с загруженными символами, содержащими информацию о Source Link или Source Server. Вы можете легко просматривать эти исходные файлы и отлаживать их, при необходимости устанавливая точки останова.
Команда Visual Studio 2022 работает над тем, чтобы обеспечить личную и командную продуктивность. Отладка внешних источников - это возможность инструментов диагностики, которая является лишь одной из интересных функций, над которыми мы работаем.
Скачать Visual Studio 2022 Preview
![](https://habrastorage.org/getpro/habr/upload_files/5a0/c40/f1b/5a0c40f1bfdf1256991862a879721efc.gif)
Узел "Внешние источники" в обозревателе решений
Эта функция добавляет новый узел верхнего уровня в обозреватель решений, который появляется, когда вы находитесь в сеансе отладки, и любой загруженный файл .pdb с информацией исходного сервера будет отображаться под этим узлом.
![В режиме отладки - свернутое состояние (по умолчанию) В режиме отладки - свернутое состояние (по умолчанию)](https://habrastorage.org/getpro/habr/upload_files/793/1fd/8db/7931fd8db4bfa7cc180d783f305f0904.png)
![В режиме отладки - развернутое состояние без модулей с символами вне загруженного решения В режиме отладки - развернутое состояние без модулей с символами вне загруженного решения](https://habrastorage.org/getpro/habr/upload_files/1ed/7ac/5a1/1ed7ac5a19c98546b7f80c17cabc4015.png)
![В режиме отладки - с одним загруженным и расширенным внешним модулем В режиме отладки - с одним загруженным и расширенным внешним модулем](https://habrastorage.org/getpro/habr/upload_files/dab/8f0/f55/dab8f0f5549f3f6db334c7b946b15c71.png)
Вы можете искать файлы, разворачивая элементы дерева. Затем дважды щелкните элемент, чтобы загрузить файл с исходного сервера и открыть его в редакторе. Узел будет сохраняться с источниками модулей в сеансах отладки, если модули настроены на автоматическую загрузку символов.
![Демо для внешних источников Демо для внешних источников](https://habrastorage.org/getpro/habr/upload_files/3de/6df/ba7/3de6dfba75c0620a788079eeaaf7a9c0.gif)
Если вы работаете с приложениями с несколькими внешними библиотеками, компоненты которых опубликованы на исходных серверах, например Newtonsoft.Json, CsvHelper, xUnit.net и т.д., эта функция предоставит вам более простой способ просматривать эти источники и при необходимости отлаживать их.
Требуемые настройки
Загрузкой символов (Symbol loading) и загрузкой источника можно управлять с помощью параметров в настройках отладки.
Следуйте приведенному ниже контрольному списку настроек, чтобы убедиться, что модули могут отображаться в узле «Внешние источники» обозревателя решений.
В Инструменты → Параметры → Параметры отладки: * Отключить только мой код: это позволит отладчику попытаться найти символы для кода за пределами вашего решения.
В Инструменты → Параметры → Отладка → Параметры символов: * Включить Microsoft Symbol Server: это позволяет отладчику пытаться найти символы на Microsoft Symbol Server; * Включить сервер символов NuGet.org: это позволяет отладчику пытаться найти символы на сервере символов NuGet.org; * Включить загрузку всех модулей: это позволяет отладчику загружать символы для всех модулей. (Обратите внимание, что эти параметры загрузят все доступные символы, вы можете ограничить загрузку символов, выбрав «Загружать только указанные модули» и указав включенные модули.)
Вам также может потребоваться проверить Отладка → Windows → Модули, чтобы увидеть, какие модули в настоящее время загружены в память, и загрузить их вручную, если это необходимо.
Вам может быть предложено загрузить исходный код с сервера, если дважды щелкнуть элемент в «Узле внешних источников»; нажмите «Принять», и вы сможете просмотреть исходный код этого элемента в редакторе.
![Демо для внешних источников с ручной загрузкой символов Демо для внешних источников с ручной загрузкой символов](https://habrastorage.org/getpro/habr/upload_files/818/c03/a92/818c03a923c8e8d403bc20444c662527.gif)
Комментарии (6)
DragonFire
19.08.2021 20:09+5Сегодня отладка через них не так проста, как отладка ваших проектов
Очень проста. в JB Rider =)
SilverFerrum
21.08.2021 10:10А можно где-то глянуть исходники солюшена, который на гифках?
Очень интересно посмотреть на BasketViewModelService и архитектуру вокруг этого
benjik
22.08.2021 12:51
gdt
Вот это вещь.