Не удается перейти к символу под кареткой

#asp.net #webforms #visual-studio-2019

#asp.net #веб-формы #visual-studio-2019

Вопрос:

мы только что перешли на vs2019, и когда мы пытаемся использовать F12 / «Перейти к определению», мы получаем «Не удается перейти к символу под кареткой». F12, похоже, работает для переменных, которые определены внутри одного файла, но не удается при попытке перейти к определениям, которые находятся в другом проекте.

Это происходит только в некоторых проектах внутри одного и того же решения. как рабочие, так и нерабочие проекты имеют одинаковую целевую структуру 4.7.2.

все проекты по-прежнему компилируются должным образом, и, насколько мы можем судить, это единственный признак.

Я попытался очистить кэш символов, удалить папку .vs hidden, очистить и перестроить решения. удаление папок bin и obj и восстановление. но не повезло.

Комментарии:

1. похоже, ошибка, которая отслеживается здесь: developercommunity.visualstudio.com/content/problem/524877 /…

Ответ №1:

Обновите «Microsoft.Net.Compilers» в разделе Управление пакетами Nuget для решения. У меня это сработало.

Комментарии:

1. Перешел с 1.0.0 на 2.10, и это устранило мою проблему.

Ответ №2:

Этот пост приблизил меня к решению https://developercommunity.visualstudio.com/content/problem/505489/cannot-navigate-to-the-symbol-under-the-caret-3.html

к сожалению, мой менеджер пакетов не показывал «Microsoft.Net.Compilers», но как только я открыл файлы vbproj в текстовом редакторе, я смог удалить следующие строки:

   <Import Project="..packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0buildMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
  <Import Project="..packagesMicrosoft.Net.Compilers.1.0.0buildMicrosoft.Net.Compilers.props" Condition="Exists('..packagesMicrosoft.Net.Compilers.1.0.0buildMicrosoft.Net.Compilers.props')" />
  <Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)$(MSBuildToolsVersion)Microsoft.Common.props')" />
  

Ответ №3:

У меня такая же проблема, вот решение, которое сработало для меня.

  1. Закройте VS
  2. Снова откройте как администратор.
  3. Очистите решение
  4. Перестройте мое решение

В промежутках между попытками обновления пакета nuget я обновил свой пакет .net core nuget до версии 2.1

Ответ №4:

Для меня проблема заключалась в том, что я просматривал новый файл, который не был добавлен в соответствующий .csproj, поэтому Visual Studio не знала, как разобраться со ссылками, расположенными в моем новом файле.

Дважды проверьте, что ваш .csproj содержит файл, в котором вы столкнулись с этой проблемой.

Ответ №5:

Ваш компилятор должен быть обновлен до последней версии. У меня была такая же проблема, и это шаги, которые я предпринял для ее решения.

  1. Щелкните правой кнопкой мыши «Ссылки» в обозревателе решений

  2. Выберите «Управление пакетами NuGet»

  3. На вкладке «Установлено» найдите «Microsoft.Net.Compilers»

  4. Выберите «Microsoft.Net.Compilers»

  5. В боковом окне «Microsoft.Net.Compilers» нажмите кнопку обновить