Подтвердить что ты не робот

Просмотр исходного кода .NET Framework из Visual Studio

Я знаю, что Я могу настроить Visual Studio для отладки через исходный код .NET framework.

Но есть ли способ, которым я могу просматривать код, а НЕ отлаживать - т.е. имея возможность нажать F12 или "Перейти к определению"?

Я думал, что если эта функция не встроена в Visual Studio, возможно, есть плагин, который может добавить его?

4b9b3361

Ответ 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