Ответ 1
Проверка Tools
→ Options
→ Debugging
→ General
→ Enable source server support
загадочно заставила все работать. Я надеюсь, что то же самое верно для вас.
Я попытался настроить отладку источника .NET, выполнив следующее прохождение MDSN. Кэш Symbol настроен правильно, также как и флажок "Включить исходный шаг .NET Framework".
Но впоследствии, всякий раз, когда я хочу вступить в .NET-код, мне будет предложено указать местоположение соответствующего файла cs. Сообщение об ошибке
You need to find <filename>.cs to view the source for the current call stack frame
и The debugger could not locate the source file <filename>.cs
.
Мне предлагается просмотреть файл (но у меня его нет) или просмотреть разборку (но я не хочу этого).
Как войти в исходный код .NET?
Проверка Tools
→ Options
→ Debugging
→ General
→ Enable source server support
загадочно заставила все работать. Я надеюсь, что то же самое верно для вас.
Ну, в моем случае я не пытался отлаживать инфраструктуру .Net, но я получал ту же ошибку: Не удалось найти файлы .cs для отладки .NET исходного кода. Так
Мне пришлось включить опцию "Включить только мой код":
Инструменты → Параметры → Отладка → Общие → Включить только мой код
В документах MS:
Вы можете настроить Visual Studio для автоматического перехода по системным, фреймворкам и другим не-пользовательским вызовам и свернуть эти вызовы в окне стека вызовов.
https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code
Мне тоже понадобился час. Я исправил его, сбросив настройки - > Инструменты → Параметры импорта и экспорта → Сброс
Ответы здесь все говорят об игнорировании/исключении исходного кода, а не вступлении в него.
@JBSnorro
находится на правильном пути, но проблема в том, что Microsoft не публикует все символы/источник.NET, с которыми вы можете столкнуться. Я не знаю, намеренно ли с их стороны, но чтобы войти в источники MS, им нужно публиковать каждую версию каждой сборки, которая является большой логистической задачей.
Tools
→ Options
→ Debugging
→ General
→ Enable source server support
будет работать во многих случаях, но я нашел, например, mscorlib.dll
для 4.6.1 не хватало символов и/или декомпилированного источника. Поэтому я не мог входить в общий исходный код, например Dictionary.cs
или Task.cs
Поскольку источник и символы сервера символов MS, вероятно, все время меняются. Моя проблема может быть решена к тому моменту, когда вы прочтете это?
Когда я отлаживаю одно и то же решение в Jetbrain Rider, я вижу и просматриваю каждый класс на каждой сборке.NET без проблем. Однако в VS я могу только вступить в какой-то класс, но не в другие?
Если вы действительно готовы войти во весь исходный код.NET, вы можете использовать Jetbrain DotPeek и декомпилировать сборки.NET в фактические файлы.cs на свой диск. Тогда, когда вы это увидите,
Теперь вы можете просматривать свой диск в исходном коде, который вы декомпилировали с помощью DotPeek. Просто убедитесь, что вы декомпилировали ту же версию сборки, которую вы указали в своем проекте. Если нет, символы могут не совпадать с правильными номерами строк источника.
Вместо этого, если вы просто хотите скрыть этот "источник не найден" от постоянного появления, и вы не хотите входить в код, для него нет источников, читайте @Alex Sherman
ответ. Вам нужно будет выяснить, в какой сборке находится нарушительный файл, а затем добавить это имя сборки в список исключений.
Пища для размышлений, я не поклонник Райдера над VS. Райдер по-прежнему ощущается прикосновением и не хватает сумасшедшего количества встроенного инструментария VS. Тем не мение!! Мне нравится, чтобы он устанавливался бок о бок в таких случаях, когда я знаю, что смогу глубже проникнуть в сорняки.
Если бы возникла та же проблема, ни одно из предложенных выше решений не помогло мне решить проблему. Произошло в VS 2017. Когда я запускал проект в Visual Studio 2019, все работало. Так что просто попробуйте запустить его в других средах. Надеюсь, что этот ответ поможет кому-то
Если ошибка связана с поиском "nullable.cs" или другого исходного файла ядра:
Вы можете отключить символы для определенных модулей, используя Debug → Options → Debugging → Symbols
а затем внизу. Specify Excluded Modules
.
Это полезно для случаев, когда вы хотите отключить "Just My Code", чтобы перейти на другие сборки, для которых вы имеете PDB. Visual Studio Я думаю, что поставляется с символами для mscorlib.dll
но не включает источник, поэтому иногда вхождение в вещи будет искать "nullable.cs" или какой-либо другой основной исходный файл.
Очистить решение перед сборкой решило проблему для меня.
Просто перейдите и нажмите на:
Build
→ Clean Solution
.Build
→ Build Solution (Ctrl + Shift + B)
.Чтобы перейти к исходному коду .net, вам может потребоваться загрузить его отсюда: https://referencesource.microsoft.com/#mscorlib/system/runtime/remoting/realproxy.cs
Вы можете найти исходный код здесь для загрузки, чтобы вы могли правильно отлаживать. https://referencesource.microsoft.com/#mscorlib,namespaces
Я получил эту ошибку при обновлении пакета NuGet в проекте, но не смог обновить его в других проектах решения.
Переход к диспетчеру NuGet решения и использование функции консолидации, которая гарантирует, что все проекты в решении используют одну и ту же версию, решили проблему для меня.