.netcore / .netstandard 项目之间的 Resharper 引用错误

Kja*_*tan 6 .net c# resharper visual-studio .net-core

我在 Visual Studio 中有两个项目,其中第一个中的类指的是第二个中的类。第一个项目是一个 .netcore 应用程序,在它的项目文件中包含以下内容:

<TargetFramework>netcoreapp2.0</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

第二个项目有多个目标框架:

<TargetFrameworks>netstandard2.0;net461;net462</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)

两个项目都可以编译并正常工作,但是位于第二个项目中的类在第一个项目的代码中显示为红色,好像存在引用错误。对于上下文,这是一个通用示例:

在此处输入图片说明

被弄脏的红色部分是另一个项目中定义的类。我可以导航到它(使用F12/“转到定义”或ctrl+单击),但是当我将光标悬停在红色文本上方时,会显示

无法解析符号“MyClassName”

所以要绝对清楚:一切仍然有效- 只是 Resharper 错误地报告了她的参考错误,这让我感到困扰。

我怎么知道 resharper 导致了这个?因为如果我禁用 Resharper(工具 -> 选项,搜索 resharper 并单击“暂停”),错误就会消失:

在此处输入图片说明

再次启用 Reshaper 会导致错误立即返回。

我怀疑这与项目的类型(即他们的目标框架)有关,但我一直无法准确地弄清楚。

关于如何摆脱这些错误的任何想法?

AAA*_*ddd 3

重新磨刀者的恶作剧

解决方案1

Tools->Options->ReSharper 
Run Code Online (Sandbox Code Playgroud)
  • 立即暂停
  • 恢复

它刷新缓存和/或其他一些黑魔法


解决方案2

您可以尝试隐式清除 ReSharper 缓存

ReSharper->Options->Environment->General 
Run Code Online (Sandbox Code Playgroud)
  • 清除缓存。

解决方案3

您还可以尝试卸载然后重新加载项目。

Solution Explorer->Right Click
Run Code Online (Sandbox Code Playgroud)
  • 卸载项目
  • 重新加载项目

解决方案4

作为最后的手段,您可以尝试手动删除解决方案缓存

%LOCALAPPDATA%\JetBrains\Transient\ReSharperPlatformVsXX\vXX\SolutionCaches\
Run Code Online (Sandbox Code Playgroud)