"Перейти к определению" в Visual Studio вызывает только метаданные для не-проектных ссылок - программирование
Подтвердить что ты не робот

"Перейти к определению" в Visual Studio вызывает только метаданные для не-проектных ссылок

У меня есть проект С#, который содержит ссылки на сборки в формате DLL. У меня есть информация PDB для этих DLL файлов, содержащихся в одной и той же папке. Когда я нажимаю F12 на ссылочном элементе, я хочу перейти к определению члена. Вместо этого он дает мне метаданные, которые, конечно, я не хочу.

Когда VS отлаживается, он переходит к исходному коду, если я один шаг в этот метод. Но если я нажму F12 на этот метод, это все равно приведет меня к метаданным.

Здесь есть аналогичный вопрос, но он применим только к проектам, и принятое решение не имеет ничего общего с моей проблемой.

"Перейти к определению" в Visual Studio отображаются только метаданные.

Подводя итог:

  • Связанный проект - это DLL
  • У меня есть информация PDB
  • Single-stepping в режиме отладки возвращает меня в исходный код
  • F12 приводит меня к метаданным
  • Я хочу, чтобы F12 приводил меня к исходному коду, как это делает debug.

EDIT: добавление в качестве "проекта" не является вариантом, поскольку оно создает дополнительную сложность, так как наш файл решения ссылается на пять других проектов, все из которых находятся в отдельных хранилищах управления версиями.

4b9b3361

Ответ 1

Похоже, эта проблема была решена в Visual Studio 2013. Наличие информации PDB в той же папке, что и DLL, показывает мне исходный код, когда я использую Go To Definition. У меня нет установленного расширения Reflector.

Ответ 2

В Visual Studio разверните раздел "Ссылки", выберите ссылку на соответствующий проект (тот, который содержит исходный код, который вы хотите включить F12), щелкните его правой кнопкой мыши и выберите "Удалить".

Затем добавьте ссылку обратно в проект, щелкнув правой кнопкой мыши на ссылке и выбрав Добавить ссылку, на вкладке "Проекты" (если вы используете VS 2012) выберите (или просмотрите) проект, к которому вы хотите добавить ссылку, а затем нажмите кнопку ОК.

Это приведет к восстановлению ссылки, и вы сможете использовать F12 в исходном коде проектов ссылок. Вам нужно будет сделать это со всеми проектами в ваших решениях, имеющих эту проблему.

Я не знаю, почему это происходит, но, по крайней мере, решение проблемы довольно просто.

Ответ 3

Если у вас установлен ReSharper, вы должны открыть опции ReSharper и искать External Sources. Там вы можете указать соответствующие параметры:

enter image description here

Ответ 4

Является ли ссылка DLL проектом в вашем решении? Я нахожу, что когда у меня есть исходный код для проекта, и это в моем решении, Visual Studio может более легко ссылаться на этот код. (не показывая мне метаданные).

Кроме того, не забудьте добавить ссылку в "Project" во всплывающем списке "Ссылки".

Обычно это то, что я делаю, когда у меня возникает эта проблема.

Надеюсь, это поможет!

PS. Файлы PDB обычно предназначены только для отладки (как локально, так и удаленных) и не используются для чтения исходного кода в том виде, как вы пытаетесь его использовать. ( "Перейти к определению" )

Ответ 5

Одним из решений этой проблемы является использование .NET Reflector, VS или VSPro edition. Эта программа изменит Visual Studio, чтобы обеспечить требуемую функциональность.

http://www.reflector.net/

К сожалению, он стоит от $135 до $195, что не является вариантом для всех.

Ответ 6

Добавьте ссылку в качестве проекта вместо.. \bin\Debug\referenceFile.dll

Это решило мою проблему

Ответ 7

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

Ссылки → Добавить ссылки → Решение → Проекты → Выбрать ссылку

введите описание изображения здесь