Просмотр исходного кода .NET Framework из Visual Studio
Я знаю, что Я могу настроить Visual Studio для отладки через исходный код .NET framework.
Но есть ли способ, которым я могу просматривать код, а НЕ отлаживать - т.е. имея возможность нажать F12 или "Перейти к определению"?
Я думал, что если эта функция не встроена в Visual Studio, возможно, есть плагин, который может добавить его?
Ответы
Ответ 1
Я только что открыл это расширение, которое в значительной степени решает мою проблему. Единственное, что он открывает источник в браузере, а не в Visual Studio, но это не имеет большого значения, потому что даже в браузере вы можете щелкнуть исходный код, чтобы перейти к типам и т.д.
Он был представлен на блоге Scott Hanselman пару дней назад:
Участник сообщества и сказочный кодер Schabse Laks создал расширение Visual Studio для VS2010, 2012 и 2013 годов! Это расширение отправляет вызовы Go To Definition (или нажатие F12 по символу) непосредственно в код онлайн (когда это код .NET Framework, а не ваш).
Вы можете загрузить этот компаньон "Ref12" Visual Studio Extension сейчас! Простое определение Goto для любого типа .NET, для которого у нас есть источник, и он запустит ваш браузер по умолчанию, чтобы вы могли самостоятельно изучить источник .NET Framework! Спасибо, Schabse!
Ответ 2
С помощью ReSharper можно просмотреть источники .NET, включив функцию ReSharper → Options → Tools → External Sources → Navigation to Sources.
После включения этой опции появляется новый пункт меню "Навигация по → Декомпилированные источники", щелкнув правой кнопкой мыши по типу/методу/независимо.
Навигация также работает с F12 для меня.
Ответ 3
Я загрузил исходный код .NET Framework здесь http://referencesource.microsoft.com/netframework.aspx.
Поскольку я работаю с .NET 4.0, я выбрал ".Net/4" из списка. (Что такое ".NET/8.0" в этом списке? Не знаю.)
Я написал несколько сценариев, чтобы перестроить кровавый беспорядок, который они нам дают:
- В разумную иерархию каталогов;
- Чтобы удалить дублированный код (почему каждый файл удваивается или моя установка плохая?);
- Переименуйте все пространства имен верхнего уровня, чтобы они не противоречили родным, запеченным в Intellisense.
- Пример: System.Windows.Controls → xSystem.Windows.Controls
Затем выполните следующие действия:
- Создайте новый проект Visual Studio типа "Библиотека классов"
- Удалите все ссылки - да, даже системные.
- Перетащите весь ваш массированный код .NET в корень вашего проекта.
- Подождите около 30 минут для обработки VS. VS замерзнет; быть терпеливым.
Intellisense/ReSharper все еще жалуется на кучу проблем, но теперь я могу щелкнуть правой кнопкой мыши и выбрать "Перейти к декларации/реализации".
Visual Studio составляет около 600 МБ при загрузке этого проекта.
Ответ 4
Я использую Visual Studio 2013 Ultimate.
1. Выберите меню: ИНСТРУМЕНТЫ\Расширения и обновления...
![enter image description here]()
2. Выберите Галерея Visual Studio\Результаты поиска. Ref12
поиска: Ref12
.
![enter image description here]()
3. Загрузите и установите.
![enter image description here]()
4. Перезапустите Visual Studio.
5. Попробуйте: щелкните мышью по классу или методу, нажмите F12 и посмотрите результат на http://referencesource.microsoft.com/
Ответ 5
В Visual Studio 2017 версии 15.6 появилась очень новая функция
Вы можете увидеть декомпилированный исходный код без какого-либо плагина! Кстати, Ref12 не работает для VS2017.
Инструменты > Параметры, разверните Текстовый редактор > С# > Дополнительно и включите " Включить навигацию к декомпилированным источникам (экспериментальным) ".
Ссылка: https://docs.microsoft.com/en-us/visualstudio/ide/go-to-and-peek-definition?view=vs-2017#view-decompiled-source-definitions-instead-of-metadata- с
Ответ 6
Я никогда не пробовал это, но, предположительно, этот код общедоступен:
[изменить]
http://referencesource.microsoft.com/
Ответ 7
Существует .NET Mass Downloader, но я думаю, что прямой ответ на ваш вопрос - нет.
Однако теперь я вижу, что Microsoft сделала код более легко загружаемым.
Тем не менее, обратите внимание, что даже для вашего собственного кода, когда вы не отлаживаете проект, если у вас нет проекта, VS не поможет вам найти исходный код (даже если вы найдете его сами, точки останова будут работать, когда вы снова начнете отладку, если соответствуют файлы .pdb
).
Ответ 8
Я знаю, что это старый вопрос, но я попал сюда в поисках того же, так как эта функция все еще отсутствует в Visual Studio 2019.
Я просто хотел бы, чтобы об этом не было вопроса о Roslyn GitHub: https://github.com/dotnet/roslyn/issues/24349