无法导航到插入符号下的符号

Cannot navigate to the symbol under the caret

我们刚刚迁移到 vs2019,当我们尝试使用 F12/"Go To Definition" 时,我们得到 "Cannot navigate to the symbol under the caret"。 F12 似乎适用于在同一文件中定义的变量,但在尝试转到不同项目中的定义时失败。

这仅发生在同一解决方案中的某些项目上。工作项目和非工作项目都具有相同的目标框架 4.7.2。

所有项目仍在正确编译,据我们所知,这是唯一的症状。

我尝试过清除符号缓存、删除 .vs 隐藏文件夹、清理并重建解决方案。删除 bin 和 obj 文件夹并重建。但运气不好。

在管理解决方案的 Nuget 包中更新 "Microsoft.Net.Compilers"。 这对我有用。

这个 post 让我接近解决方案 https://developercommunity.visualstudio.com/content/problem/505489/cannot-navigate-to-the-symbol-under-the-caret-3.html

不幸的是,我的包管理器没有显示 "Microsoft.Net.Compilers",但是一旦我在文本编辑器中打开 vbproj 文件,我就能够删除以下行:

  <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.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
  <Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)$(MSBuildToolsVersion)\Microsoft.Common.props')" />

我遇到了同样的问题,这是对我有用的解决方案。

  1. 关闭VS
  2. 以管理员身份重新打开。
  3. 清洁解决方案
  4. 重建我的解决方案

在尝试更新 nuget 包期间,我将 .net 核心 nuget 包更新为 2.1

对我来说,问题是我正在查看一个未添加到相应 .csproj 的新文件,因此 Visual Studio 不知道如何理解新文件中的引用。

Double-check 您的 .csproj 包含您遇到此问题的文件。

您的编译器需要更新到最新版本。我遇到了同样的问题,这些是我为解决它所采取的步骤。

  1. 在解决方案资源管理器中右键单击“参考”

  2. Select“管理 NuGet 包”

  3. 在“已安装”选项卡下搜索“Microsoft.Net.Compilers”

  4. Select "Microsoft.Net.Compilers"

  5. 在“Microsoft.Net.Compilers”的window一侧点击更新按钮