Visual Studio и просмотр исходного кода
От: dmitry_npi Россия  
Дата: 07.11.24 11:18
Оценка:
Всё есть и что-то работает, но не пойму когда и как. Есть декомпиляция, есть SourceLink. Но исходы, когда жму F12, получаются разные, и как кажется, рандомные:

1) Открывается исходный код через SourceLink, с комментариями, в том виде как он был написан автором. Самый лучший вариант. Бывает редко.
2) Открывается декомпилированный код, без комментариев. Бывает на сторонних либах, авторы которых не использовали SourceLink.
3) Открывается якобы исходник, в нем есть методы, но нет тела. Написано "From metadata". Бывает часто, в основном на системных либах.
4) И самое бесячее — якобы исходник, в нем есть методы, но вместо тела — выражение throw null.

Почему оно так работает? Как мне уйти от этих "ref" сборок, кому и для чего они нужны, жаль настоящую положить что ли?

Как настроить студию так, чтобы она слала к черту этот соурс линк и реф сборки, а вместо этого ВСЕГДА бы по-честному показывала декомпилированный код.

Пример: используется AspNetCore.Identity. Вызывается метод SignInManager.PasswordSignInAsync. Получается вариант 3. А хотелось бы 1 или 2. Неужели майкрософт не удосужилось применить sourcelink для своих же библиотек? Идут года и версии, ситуация не улучшается.
Атмосферная музыка — www.aventuel.net
Отредактировано 07.11.2024 11:19 dmitry_npi . Предыдущая версия .
Re: Visual Studio и просмотр исходного кода
От: _FRED_ Черногория
Дата: 05.12.24 13:17
Оценка:
Здравствуйте, dmitry_npi, Вы писали:

_>Всё есть и что-то работает, но не пойму когда и как. Есть декомпиляция, есть SourceLink. Но исходы, когда жму F12, получаются разные, и как кажется, рандомные:

_>4) И самое бесячее — якобы исходник, в нем есть методы, но вместо тела — выражение throw null.
_>Почему оно так работает? Как мне уйти от этих "ref" сборок, кому и для чего они нужны, жаль настоящую положить что ли?
_>Как настроить студию так, чтобы она слала к черту этот соурс линк и реф сборки, а вместо этого ВСЕГДА бы по-честному показывала декомпилированный код.

А как уйти? Если ваша библиотека, скажем, собирается под .NET Standard, то она и "использует" эти самые ref-сборки. А уж какая будет реализация будет ясно только в рантайме. Например, под .NET Framework может быть одна реализация, а под .NET 9 (или даже ещё не существующую платформу) что-то совсем другое
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.