2013-08-28 5 views
1

язь: против 2012 обновления v11.0.60610.01 3 проект: веб-сайт, сочетание VB и C# проблема: Б. переходит к определению C# перехода к метаданным жалобы: полная боль в заднице при управлении проектом с кодовой строкой 30k. Решение : вы первым поймете это, это выходит за рамки моего уровня терпения.Visual Studio 2012 C# перейти к определению всегда возвращает метаданные

Я нахожу метаданные 110% бесполезными. есть ЛЮБОЙ способ получить C#, чтобы перейти к фактическому определению, например, vb?

благодаря

ответ

2

Если это плавание к метаданным, а не определение, это, вероятно, связаны с тем, как были добавлены ваши сборки. Если вы добавите ссылку в качестве библиотеки DLL, она будет всегда показать метаданные, даже если этот проект включен в ваше решение; вы должны добавить ссылку по проекту, чтобы иметь доступ к источнику.

+0

спасибо, но нет, я не прошу определения методов, встроенных в dll. Я написал весь необработанный код, который он использует. определения содержатся в файлах .vb и .cs, а не dll. почему C# НЕ переходить к определению вместо представления мне бесполезных метаданных ??? – joeydood

+1

@joeydood Я понимаю, что вы спрашиваете, почему он показывает метаданные по вашему коду ... ответ, который я дал, - это ответ на вопрос. Просто потому, что у вас есть код, DLL не означает, что он был добавлен в ваш проект. Попробуйте добавить/удалить ссылку и обеспечить ее добавление * по проекту *, а не через DLL, и посмотреть, можете ли вы перейти к ней. – wilso132

+0

@joeydood Единственное другое объяснение заключается в том, что вы пытаетесь переместить что-то вроде ссылки на службу WCF, но я думаю, что VB обрабатывает то же самое ... – wilso132

0

«Я нахожу метаданные 110% бесполезными. Есть ли способ получить C#, чтобы перейти к фактическому определению, например, vb?»

Решение Resharper для определения/перехода к вариантам реализации работает точно так, как вы ожидали, - стоит попробовать проверить, исправляет ли он вашу проблему.

This question может быть полезным, если вы не хотите попробовать ReSharper

+0

Инструмент Resharper полезен только при переходе к реализации интерфейса, а не просто в интерфейсе. Я не уверен, что это проблема, с которой он сталкивается или нет; «Метаданные» обычно означают, что они просто извлекают информацию из DLL. – wilso132

0

я понимаю, что это старый нить, но это, казалось, один из немногих, которые сосредоточены на роли смешанных языков (C# и VB. NET) в качестве фактора, способствующего этому.

Я провел несколько тестов по VS.NET 2010, 2012, 2013 и 2015 годам. Мои эмпирические результаты (не подтвержденные официальной документацией Microsoft) - это то, что все 4 поддержки Найти все ссылки членов VB.NET, потребляемых C# (хотя и разделены на явно отдельные группы результатов), пока добавлены ссылки на проекты. Тем не менее, VS.NET 2010, 2012 и 2013 заканчиваются в представлении «из метаданных» для Go To Definition от кода C# до члена VB.NET. Где, как выглядит VS.NET 2015, эта навигационная система Go To Definition работает правильно.

Я также подтвердил, что использование поддержки Resharper для External Sources позволяет Go To Definition работать в VS.NET 2012, и это почти мотивировало меня на покупку лицензий для Resharper для нашего текущего проекта, который имел смешанные проекты C# и VB.NET, но теперь мой план - просто ускорить принятие VS.NET 2015.

Смежные вопросы