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

Я впервые заметил это через некоторое время после установки Costura.Фоди через NuGet. С тех пор я удалил его, но проблема сохраняется. Я очищал и перестраивал решение несколько раз. Нет никаких экземпляров "Фоды" или "Costura" нигде в моих коммитов в истории, до или после того момента, когда это началось, поэтому я думаю, что один из моих .гитюдного файлы я застрял в плохом состоянии.
проблема возникает только в том случае, если целевое определение находится в другом файле; перейдите к определению для чего-то в текущем открытом файле работает нормально. Определение тоже работает нормально. Другие решения / проекты также работают нормально - это только тот, который вызывает проблемы.
Я использую Visual Studio 2015. Проблема, похоже, не в этом возникает в версии 2013.
Почему возникает эта ошибка и как ее исправить?
30 ответов:
последние пару дней я получаю эту ошибку, по крайней мере, два раза в день.. очень раздражает! Ни одно из предложенных здесь решений работал для меня. То, что я нашел, и так как это было довольно трудно найти, я пишу это здесь, было:
- Закрыть Визуальный
- Откройте консоль и перейдите в папку визуальной установки, на моем компьютере C:\Program файлы (x86)\Microsoft Visual Studio 14.0\Common7\IDE
- выполнить команду devenv.исполняемый /resetuserdata
- откройте Visual Studio, это займет некоторое время для загрузки.
отказ от ответственности: Я использую Xamarin
примите во внимание то, что @OzSolomon и @xCasper сказали:
@OzSolomon
знайте, что это приведет к сбросу многих настроек IDE, в том числе установлены плагины.
убедитесь, что вам удобно с этим перед использованием /resetuserdata@xCasper
Если ваши настройки синхронизированы через Microsoft, однако, большинство из них предпочтения, похоже, восстанавливаются сами собой. Я говорю большинство, потому что это кажется, мои привязки клавиш не восстановились и вернулись к умолчанию. Все остальное, например, моя выбранная тема и варианты раскрашивания, макет моей IDE (где у меня есть вкладки, например), А что нет кажется, чтобы вернуться.
Я попробовал решение Дэвида (тот, о нажатии пустой опции кэша символов), но это не сработало для меня.
Как я это решил?
- закрыть все файлы
- очистить решение
- перестроить решение
для меня эта ошибка не имеет смысла, но я решил делать это!
У меня та же проблема. Я сделал все эти шаги, упомянутые в комментарии выше. Это не сработало. Но когда я закрыл Visual Studio, удалил".vs" папка (в папке решения) затем снова открыл Visual Studio. Теперь это работает как шарм. Проблема исчезла.
просто была та же проблема, и кажется, что есть проблема с VS 2015 и TFS. Я получил проблему после того, как я объединил некоторые файлы в другую ветку. Попробовал несколько вещей, и это сработало:
- закройте все открытые файлы, а затем VS
- Инструменты - > Параметры - > Отладка - > Символы - > Пустой Кэш Символов
- TFS проверить и получить последнюю (по какой-то причине он работал после этого)
Не знаю, почему это происходит, но это работает для меня, это также может быть стоит очистить папку TFSTemp, как упоминалось zvi.
EDIT
этот путь:
%TMP%\TFSTempможно скопировать-вставить в Проводник windows для доступа к TFS temp
следующее исправило это для меня:
- в обозревателе решений щелкните правой кнопкой мыши имя решения.
- Выберите "Очистить Решение"
после того, как это успешно завершено, я больше не получал ошибку, и мне не нужно было ничего закрывать и снова открывать.
очистите символы кэша (Инструменты > Параметры > отладка > символы > EmptySymbolCache). Откройте решение в административном режиме.
это решило мою проблему.
ответ выше правильный, но путь немного, попробуйте это вместо этого:
%AppData%\..\Local\Temp\TFSTemp
Просто сделай это:
- Закрыть Visual Studio
- перейдите в папку проекта и удалить .пользовательский файл (может быть скрыт)
- Открыть Visual Studio
столкнулся с проблемой при использовании F12 чтобы попытаться перейти к определению метода.
все упомянутые пункты (кроме
/resetuserdata- который я не пробовал, потому что это будет боль, чтобы оправиться от) не сработало.что у меня получилось:
- Выход Из Visual Studio
из командной строки перейдите в папку для вашего решения и запустите следующий код (это удаляет все bin и obj папки в ваше разрешение):
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G" FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"Перезапустите Visual Studio. Открытие решения должно занять немного больше времени, так как теперь он перестраивает obj папки.
после этого F12 работала!
в качестве примечания, я обычно помещаю это в пакетный файл в папке моего решения, вдоль стороны . Это позволяет легко запускать позже!
У меня такая же проблема после обновления visual studio, так что вот как я могу решить эту проблему.
- закрыть visual studio.
- удалить все .vs папка из моего проекта.
- откройте visual studio.
- открыть мой проект.
надеюсь, что это полезно для тех, кто имеет эту проблему.
большинство путей, представленных другими, либо не работают, либо немного отстают.
очистить эту папку:
%localappdata%\Temp\TFSTempэто сработало для меня.
Я бы сказал, что это связано с новым компилятором Roslyn C#, в его трекере проблем github вы можете найти многих фактических разработчиков, сталкивающихся с этим и пытающихся это исправить, но в настоящее время он все еще открыт:https://github.com/dotnet/roslyn/issues/9602
Я тоже провел некоторое время вокруг этого, и я проиграл битву. Но следующий обходной путь, который я нашел, хорошо работает для меня.
решение
- изменить клавиатуру ярлык F12 - > Редактировать.FindAllReferences (для текстового редактора). Это позволит найти определение и все ссылки и сосредоточить корневой узел (определение) в результатах поиска символов.
- теперь при нажатии клавиш F12, введите будет делать то же самое, что и F12 раньше.
для меня это, кажется, работает даже лучше, чем просто GoToDefinition, потому что:
- после нажатия F12 вы можете выбрать ссылку вместо определения, нажав вверх или Вниз
- вы можете просто переключаться между ссылками и определением только с помощью этих нескольких клавиш (F12, ENTER, UP, DOWN), легко запомнить.
закройте visual studio и удалите скрытое имя файла .vs в этом проекте и снова откройте visual studio, а затем создайте проект. Бум! Все хорошо!
Я сделал все, что выше, но моя проблема не решена (попытка открыть проект по VS 2017),
после этого я понял, что проблема была в моем файле csproj. Мой проект (mvc)
был создан VS 2015... Поэтому я редактирую свой файл csproj и заменяю
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />это :
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />Это было все о версии DotNetCompilerPlatform.
(то, как я понял эту проблему, заключалось в том, что я создал новый проект mvc VS 2017 и сравнил оба файла csproj-новый и тот, который создал VS 2015 -)
- Регистрация имен двух классов.
- Если вы добавляете классы в библиотеке классов - убедитесь, что вы используете правильный тип проекта. Существует два типа библиотек классов. Библиотека классов (пакет) и библиотека классов. (Выберите более поздний по мере его создания .dll файл), который затем может быть добавлен при необходимости в других решениях.
Если вы недавно установили приложение, рассмотреть возможность его удаления. Вот что сработало для меня.
Я также столкнулся с той же проблемой и "найти все ссылки" для выбранного класса решил эту проблему.
Я тоже наткнулся на это однажды. Что-то не так с TFS в VS 2015.
я следовал этим шагам, и это сработало
очищенный кэш TFS Это может быть здесь:
C:\Users\(Имя Пользователя)\AppData\Local\Microsoft\Team Foundation\(Версия)\Cache
Примечание: путь может различаться в зависимости от операционной системы, так что не обессудьте.
Очистить Кэш Символов
инструменты > Параметры > Отладка > Символы > EmptySymbolCache
перезапущена Visual Studio (он может запросить подключение к TFS снова)
Это сработало для меня.:)
следующее сработало для меня как шарм:
- Я проверил предупреждения, которые появились, когда я построил проект
- некоторые из них упоминали что-то о конфликте версий сборки. Visual studio предложила мне нажать на предупреждение и нажать Enter. Всплывающее окно предлагало автоматически исправить проблему, и поэтому я это сделал.
- проблема решена!
эта странная ошибка произошла со мной при импорте проекта Xamarin в VS15. Ни одно из перечисленных здесь решений не работало для меня. После дня разочарования я также столкнулся с проблемой следующего вида: Visual Studio "найти" результаты в "файлы не были найдены для просмотра. Найти остановленный прогресс."
при нажатии кнопки "Найти все" в диалоговом окне поиска, всплывающее окно сообщило мне, что другие файлы не могут быть просмотрены. поэтому я решил, что причина 'перейти к определению' не работает это было связано с той же ошибкой, что и поиск определений в одном файле.
странное решение в приведенной выше ссылке (нажатие Ctrl+Scroll Lock или Ctrl+Break несколько раз) решило обе проблемы для меня.
окраска кода (который не работал, когда функция "перейти к определению" была нарушена) также немедленно вернулась.
после выполнения " devenv.exe / resetuserdata", мой VAssistX терпит неудачу, так что, на самом деле, это напоминает мне, что VAssistX может решить проблему путем реализации Goto (Alt+G).
моя проблема была в том, что я (полу-случайно) изменили собственность
Build actionиз проблемных .cs файл вContent. Изменение его обратно вCompileсделал трюк, который имеет смысл.
после того, как я прочитал, что эта конкретная проблема была исправлена в компиляторе roslyn (смотрите эту проблему на GitHub) Я обновлена Visual Studio С версии 15.0.x-15.3.1. Теперь это работает как шарм.
для меня навигация работает только без решений XAMARIN. Что предложения здесь не работает. :( Команда devenv.exe / resetuserdata не работает для меня.
мое решение было: Повторно создайте решения, проект, папки и работы. Никакого импорта. Подробно: мой проект был на VS 2015, ошибка была на VS 2017.
недавно обновлен до VS 2017 15.5.0 и столкнулся с этой проблемой. Я попробовал:
- удаление кэша символов
- Удалить мой .папка против.
- восстановление решение.
- запуск devenv / resetuserdata
к сожалению, ни один из них не работал. Я заметил, что это происходит только на некоторых проектах, а не другим. В проекте, где он терпел неудачу, я в конечном итоге переключил все версии фреймворка на 4.7.1, сделал a очистите / перестройте, и мой "перейти к определению" снова начал работать.
У меня была эта ошибка уже довольно давно, пока я не мог больше ее терпеть, поэтому я попробовал все решения possbile выше, но никто не работал для меня. Я заметил, что ошибка появляется только в определенном проекте (например, в том, что пользователь упомянул выше), но не в других проектах. Из-за этого, поскольку ничего не работает, я снова клонировал свой проект в другую папку, и он снова начал работать.
Я использую VS 2017 15.7.5, и это перестало работать для некоторых тестовых файлов. Я заметил, что все они были новыми, которые я недавно добавил, и что в обозревателе решений не было стрелки, доступной для расширения и просмотра свойств / методов.
Я исключил, а затем повторно включил их в свой проект, и команда определения goto снова работала.
Почему-то мой call_name.код XAML.класс vb был исключен из проекта (это, казалось, произошло после того, как я получил последнюю версию от TFS). Я просто должен был включить его снова, и он работает сейчас!
Comments