Ответ 1
Похоже, эта проблема была решена в Visual Studio 2013. Наличие информации PDB в той же папке, что и DLL, показывает мне исходный код, когда я использую Go To Definition. У меня нет установленного расширения Reflector.
У меня есть проект С#, который содержит ссылки на сборки в формате DLL. У меня есть информация PDB для этих DLL файлов, содержащихся в одной и той же папке. Когда я нажимаю F12 на ссылочном элементе, я хочу перейти к определению члена. Вместо этого он дает мне метаданные, которые, конечно, я не хочу.
Когда VS отлаживается, он переходит к исходному коду, если я один шаг в этот метод. Но если я нажму F12 на этот метод, это все равно приведет меня к метаданным.
Здесь есть аналогичный вопрос, но он применим только к проектам, и принятое решение не имеет ничего общего с моей проблемой.
"Перейти к определению" в Visual Studio отображаются только метаданные.
Подводя итог:
EDIT: добавление в качестве "проекта" не является вариантом, поскольку оно создает дополнительную сложность, так как наш файл решения ссылается на пять других проектов, все из которых находятся в отдельных хранилищах управления версиями.
Похоже, эта проблема была решена в Visual Studio 2013. Наличие информации PDB в той же папке, что и DLL, показывает мне исходный код, когда я использую Go To Definition. У меня нет установленного расширения Reflector.
В Visual Studio разверните раздел "Ссылки", выберите ссылку на соответствующий проект (тот, который содержит исходный код, который вы хотите включить F12), щелкните его правой кнопкой мыши и выберите "Удалить".
Затем добавьте ссылку обратно в проект, щелкнув правой кнопкой мыши на ссылке и выбрав Добавить ссылку, на вкладке "Проекты" (если вы используете VS 2012) выберите (или просмотрите) проект, к которому вы хотите добавить ссылку, а затем нажмите кнопку ОК.
Это приведет к восстановлению ссылки, и вы сможете использовать F12 в исходном коде проектов ссылок. Вам нужно будет сделать это со всеми проектами в ваших решениях, имеющих эту проблему.
Я не знаю, почему это происходит, но, по крайней мере, решение проблемы довольно просто.
Если у вас установлен ReSharper, вы должны открыть опции ReSharper и искать External Sources
. Там вы можете указать соответствующие параметры:
Является ли ссылка DLL проектом в вашем решении? Я нахожу, что когда у меня есть исходный код для проекта, и это в моем решении, Visual Studio может более легко ссылаться на этот код. (не показывая мне метаданные).
Кроме того, не забудьте добавить ссылку в "Project" во всплывающем списке "Ссылки".
Обычно это то, что я делаю, когда у меня возникает эта проблема.
Надеюсь, это поможет!
PS. Файлы PDB обычно предназначены только для отладки (как локально, так и удаленных) и не используются для чтения исходного кода в том виде, как вы пытаетесь его использовать. ( "Перейти к определению" )
Одним из решений этой проблемы является использование .NET Reflector, VS или VSPro edition. Эта программа изменит Visual Studio, чтобы обеспечить требуемую функциональность.
К сожалению, он стоит от $135 до $195, что не является вариантом для всех.
Добавьте ссылку в качестве проекта вместо.. \bin\Debug\referenceFile.dll
Это решило мою проблему
Я также использовал ссылку на ссылку как проект, и моя проблема была решена, и она отлично работает. На самом деле я застрял в этой точке очень долго и, наконец, решил эту проблему.
Ссылки → Добавить ссылки → Решение → Проекты → Выбрать ссылку