无法导航到插入符号下的符号
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')" />
我遇到了同样的问题,这是对我有用的解决方案。
- 关闭VS
- 以管理员身份重新打开。
- 清洁解决方案
- 重建我的解决方案
在尝试更新 nuget 包期间,我将 .net 核心 nuget 包更新为 2.1
对我来说,问题是我正在查看一个未添加到相应 .csproj 的新文件,因此 Visual Studio 不知道如何理解新文件中的引用。
Double-check 您的 .csproj 包含您遇到此问题的文件。
您的编译器需要更新到最新版本。我遇到了同样的问题,这些是我为解决它所采取的步骤。
在解决方案资源管理器中右键单击“参考”
Select“管理 NuGet 包”
在“已安装”选项卡下搜索“Microsoft.Net.Compilers”
Select "Microsoft.Net.Compilers"
在“Microsoft.Net.Compilers”的window一侧点击更新按钮
我们刚刚迁移到 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')" />
我遇到了同样的问题,这是对我有用的解决方案。
- 关闭VS
- 以管理员身份重新打开。
- 清洁解决方案
- 重建我的解决方案
在尝试更新 nuget 包期间,我将 .net 核心 nuget 包更新为 2.1
对我来说,问题是我正在查看一个未添加到相应 .csproj 的新文件,因此 Visual Studio 不知道如何理解新文件中的引用。
Double-check 您的 .csproj 包含您遇到此问题的文件。
您的编译器需要更新到最新版本。我遇到了同样的问题,这些是我为解决它所采取的步骤。
在解决方案资源管理器中右键单击“参考”
Select“管理 NuGet 包”
在“已安装”选项卡下搜索“Microsoft.Net.Compilers”
Select "Microsoft.Net.Compilers"
在“Microsoft.Net.Compilers”的window一侧点击更新按钮