即使项目构建成功,ReSharper仍显示“无法解析符号”。

539

我的工具:

Visual Studio 2012 Ultimate + Update 1

ReSharper v7.1.25.234

我的解决方案构建状态: 构建成功

但是当我安装了ReSharper并启用了ReSharper代码分析时,我的代码中许多关键字都标为红色,并显示以下错误:

"无法解析符号XXX"

图片描述


我的项目的另一张图片 >>

ReSharper的“CANNOT RESOLVE SYMBOL”错误随处可见,但我的项目构建过程成功,并且正常工作。

图片描述

附加说明: 如果我禁用ReSharper代码分析,我的项目将是正常的,但我想使用ReSharper代码分析。


我尝试了 ReSharper → 选项常规清除缓存。但我仍然有这个问题!


  • 一个月前,我卸载了Visual Studio 2012 RC并安装了VS 2012 RTM时遇到了这些错误。

  • 我已经卸载并重新安装了ReSharper。但我仍然有这个问题!

  • 我的解决方案有五个项目 >> 两个已加载的项目(主项目+资源项目)和三个未加载的项目


我意识到我的Visual Studio还有更大的问题 (在Stack Overflow上查看更多信息)

  • 我无法向我的项目添加任何引用(即使是在新的解决方案和新的项目中)

  • 我无法安装任何软件包(通过“软件包管理器控制台”或“管理NuGet程序包”)

  • 我无法更新任何包(通过“Packet Manager Console”或“Manage NuGet Package”)

我尝试了很多建议(包括自己和别人的)

  • 重新注册某些DLL文件

  • 使用一些Windows和注册表修复工具

  • 卸载ReSharper

  • 修复Visual Studio

  • 等等...

但是我没有解决它。

我正在考虑安装一个新的Windows :(


出了什么问题,我该如何解决?


4
我曾经遇到过同样的问题。不得不卸载它并重新安装。 - MeTitus
感谢大家的帮助,但不幸的是,没有一个答案能够解决我的问题。我不得不重新安装操作系统... - Ramin Bateni
3
以下任何一种解决方案都可以暂时解决问题。但是,问题总是会反复出现,如果您同时使用TFS进行版本控制,则情况尤其严重。JetBrains公司的沉默和过去一年的缺乏更新使我认为他们只是懒散地在坐收R#的钱。 - Yuck
3
在我的情况下,这里的任何答案都没有起作用。我还联系了Jetbrain支持,但他们目前还无法提供帮助。我只能暂时禁用Resharper。[问题在此跟踪](https://youtrack.jetbrains.com/issue/RSRP-463041)。 - Co7e
1
2021年1月了,这个问题还存在!=| - Andreas
显示剩余7条评论
42个回答

800

尝试在Visual Studio中点击菜单 工具选项ReSharper,然后点击Suspend按钮,再次点击Resume(无需关闭窗口)。这对我的情况有效。


4
在使用VS2012 Update 3和Resharper 7.1.3时,这并没有解决我的问题。卸载Resharper并重新安装后问题得到了解决。 - LordHits
103
这个方法对我不起作用,但清除ReSharper缓存解决了问题。 - quadroid
18
我必须清除缓存,暂停 ReSharper VS2012 更新 4 和 R# 7.1。 - moi_meme
22
这对我也没有用,但卸载/重新加载项目可以解决问题:右击项目->卸载项目,然后再次右击->重新加载项目。 - biscuit314
7
同样的解决方案,清除缓存(在某些情况下必要):https://dev59.com/7mMk5IYBdhLWcg3w3xdY#19772172 - Dherik
显示剩余13条评论

245
VS -> Tools -> Options -> ReSharper Suspend button 
Clear Contents of -> AppData\Local\JetBrains\ReSharper\v7.1\SolutionCaches
VS -> Tools -> Options -> ReSharper Resume  button

81
您可以通过Resharper > Options > Environment > General路径,点击“Clear Cache”,然后重新启动VS来清除缓存。感谢您的回答,对我有帮助。 - Johan Larsson
3
这对我有用 :) 另一种方法是通过从Visual Studio本身清除缓存。谢谢 - ThomasBecker
2
清除缓存对我没有作用。删除SolutionCaches文件夹的内容可以解决问题。 - JayJay
7
这对我解决了一个恼人的“无法解析方法”的警告。另外,在VS2013的Resharper 9中,路径为\AppData\Local\JetBrains\Transient\ReSharperPlatformVs12\v01\SolutionCaches - spinalfrontier
11
再补充一点,这次是关于在Visual Studio 2015中使用Resharper 10的路径问题,路径为%localappdata%\JetBrains\Transient\ReSharperPlatformVs14。我在那里有v02、v03和v04子文件夹 - 我删除了它们及其内容。 - StackOverflowUser
显示剩余5条评论

137

这对我很有用(VS2012u4,R#7.1.3):

  1. Resharper > 选项 > 环境:常规 > 清除缓存
  2. 重新启动Visual Studio

34

清除Resharper缓存:Resharper -> 选项 -> 通用 -> 清除缓存,关闭并重新打开解决方案。这在R#9.0 Update 1中有效。


菜单选项是“General”而不是“Generate”,以便进入清除缓存。 - Kirsten
在R# 9.2的.NET Core项目中似乎无法工作?尝试关闭和重新打开项目以及VS...编辑:现在它可以工作了!由于某种原因,必须重启两次才能使其工作! - user3791372
谢谢!这是唯一一个在使用VS 2017专业版时对我有效的解决方案。 - Pete

32

在ReSharper中出现这种情况是因为您的解决方案中有两个不同版本的相同库。例如,项目A引用了automapper 1.1版本,而项目B引用了automapper 1.0版本。

Visual Studio在这种情况下通常会编译和运行正常,因为它会选择其中一个DLL来绑定。但是ReSharper变得非常困惑。对我来说,这应该是一个ReSharper错误,它应该要求您解决问题而不是只是疯狂地工作。

更新:

我在前天(在发布此帖子的一天后)偶然遇到了这个问题,并在这个链接中发现它是由VS API中的一个错误导致的。我尝试了他们推荐的所有方法,即使是临时的,我都无法解决它:我下载了Autofac 2.6.x并将其替换为NuGet包版本,但无论我做什么,它都不肯看到新的引用。

他们建议安装R# 8 EAP,但对我来说,退回旧版的Autofac更简单。

关于解决问题没有太多帮助,但可能有用。


我在问题中添加了有关错误程度的其他信息。一个月前,我将我的VS 2012 RC更改为VS 2012 RTM,然后这些错误发生了(没有对我的项目进行任何更改)。现在,您有什么建议? - Ramin Bateni
1
你尝试过删除所有引用,然后重新添加它们吗?(你可能正在指向旧的DLL文件,这会令R#感到困惑。) - satnhak
我意识到我的Visual Studio也存在更大的问题:我无法向我的项目添加任何引用(即使在新解决方案和新项目中),更多信息请参见:http://stackoverflow.com/questions/15746529/mvc-website-package-updating-error-loading-type-library-dll-exception-from-h - Ramin Bateni
这让我朝着正确的方向前进,因为被接受的答案并没有起作用。对我来说,相关的库有一个可用的更新。我原本打算先将其删除,然后再重新添加,但我看到了更新并首先尝试了它。在更新库之后,问题得到了解决。 - c0r3yz
这个答案帮助我解决了一个类似的情况。我在我的project.json文件中引用了AspNetCore.Mvc版本1.0.0 rc final,这导致了原帖作者遇到的问题。我回到project.json文件中,将版本更改为1.0.0,问题得以解决。 - WBuck
这个问题在GitHub上的Azure SDK for .Net中显示,因为其中的项目同时引用了.NETStandard版本1.1和1.5。 - David Burg

31

我遇到了与Visual Studio 2015和ReSharper Ultimate 10.0.2相关的问题。在此答案之前,我尝试了几乎所有已经记录下来的解决方法(除了重新安装),但都没有起作用。

我按照以下非常特定的步骤将其再次启动:

  1. ReSharper → Options → Environment → General → Clear Caches
    • 这必须在挂起ReSharper之前完成,否则该选项将不可用
    • 这会清除掉一些其他帖子中提到的位于C:\Users\YourUsername\AppData\Local\JetBrains\Transient\ReSharperPlatformVs14\v04目录中的文件
  2. 工具 → 选项 → ReSharper Ultimate → 暂停
  3. 关闭Visual Studio
    • 这实际上执行了ReSharper缓存的清除
  4. 打开Visual Studio
  5. 打开解决方案
    • 等待Visual Studio检测到IntelliSense中不存在代码问题,并可能在此时执行构建。
  6. 工具 → 选项 → ReSharper Ultimate → 恢复

希望在最后一步之后,您可以松一口气,因为您不需要重新安装任何东西,我也是!


1
这也发生在Visual Studio 15预览版和Resharper上。这些步骤为我解决了问题(希望它不会很快再次出现)。谢谢! - jporcenaluk
这里是VS 2017。清除缓存;关闭VS并重新启动;暂停Resharper并关闭VS;在解决方案中重新启动VS,然后启动Resharper,这对我有用。 - RandomHandle
清除缓存并重新启动项目解决了问题。谢谢! - Sukesh Chand

19

通常是由于配置文件损坏或错误检测引起的。只需删除 .vs 文件夹,重新启动 VS 以重置配置即可解决大多数情况。

输入图像描述


这对我很有帮助。非常感谢!否则我可能要花费数小时来解决它 :-) 不是吗? - Xan-Kun Clark-Davis

14

我遇到了类似的问题,并清除了以下位置找到的缓存:

AppData\Local\JetBrains\ReSharper\v7.1\SolutionCaches

这个方法解决了我的问题。

正在运行VS2012 U3版本。


我做过类似的事情,我只是删除了整个AppData\Local\Jetbrains目录。那里有很多不同的版本,包括一些比我当前的resharper安装更新的版本。 - benstpierre

13

我遇到了同样的问题(在VS 2017中)。在我的情况下,导致问题的原因是目标框架的版本不一致-一个程序集的目标框架为4.52,另一个为4.62-将这两个程序集的目标框架设置为相同的版本后,它开始正常工作。


4
不可思议,这也是我遇到问题的原因。我简直不敢相信……这绝对应该得到更多赞成票。 - Thomas Flinkow
同意,这也帮助了我。 - eljoe
目标对于解决我的问题没有任何影响。 - Mike
1
同意上面的观点,特别是当您在“错误列表”窗口中收到警告时,告诉您这是问题所在。人们应该在摆弄Resharper之前检查这一点。 - Eddie
谢谢 Mikolaj。我的问题也是一样的。 - Firoz Jafri

12

如您所见,解决方案就是大家已经提到的 - 只需暂停 ReSharper,然后清除缓存,最后再恢复它。但是,没有人提到如何在不关闭/重新启动Visual Studio的情况下完成它。

只需按照以下步骤:

  1. 获取ReSharper缓存位置

    • 手动通过进入ReSharper选项>环境>常规>将解决方案缓存存储在(组合框)(图像中标有2)。选择“自定义文件夹”,然后从显示的文本框中复制缓存文件夹的位置(图像中标有3)。恢复设置。标记为1的按钮显示ClearCache Button。通常不起作用,因此请勿使用。 显示内容的图像
  2. 暂停ReSharper

    • 您可以通过转到工具>选项>ReSharper或ReSharper Ultimate>Suspend Now (Button)来执行此操作 ReSharper Suspend Option
  3. 清除缓存

    • 前往在步骤1中复制的位置并删除该文件夹中的所有内容。是的,我的意思是一切都要删掉。
  4. 恢复ReSharper

    • 您可以通过再次进入工具菜单 Tools > Options > ReSharper 或者 ReSharper Ultimate > 继续 (按钮) 来完成此操作。

1
谢谢!这真的是唯一对我有效的。最近,Resharper变得越来越成为问题,而不是解决方案...如此缓慢和有错误... - Tor
所有这些都没有解决问题。删除Reshaper解决了问题。 - Mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接