Rider 中的 dotnet:无法解析符号“Microsoft”

Posted

技术标签:

【中文标题】Rider 中的 dotnet:无法解析符号“Microsoft”【英文标题】:dotnet in Rider: cannot resolve symbol 'Microsoft' 【发布时间】:2020-06-11 15:44:48 【问题描述】:

在 macOS Catalina 上的 Rider 2020.1.3 中。我通常不是 C# 开发人员,因此对不正确的术语表示歉意。

这是一个使用 Docker 容器化的 .NET api。 Rider 似乎随机失去了与 dotnet 核心库的连接。会好的,然后我会走开,回来并在所有导入上得到“无法解析符号'Microsoft'”或“无法解析符号'System'”(见随附的屏幕截图),这当然会逐渐减少他们的方法也被认可。当我在这一点上构建它时,我得到了这个错误:

Microsoft.PackageDependencyResolution.targets(208, 5): [NETSDK1004] Assets file '/app/[applicationName]/obj/project.assets.json' not found. Run a NuGet package restore to generate this file.

执行 NuGet 包还原告诉我所有包都已还原,并且它提到的文件存在于该位置(但是,它旁边显示“无索引”,但不确定这意味着什么)。

第一次出现好像是因为我本地安装的SDK(3.1)与项目中使用的SDK(2.2)不同。我在我的机器上安装了 2.2 并稍微解决了这个问题。

第二次发生,在第一次之后的第二天,似乎是因为 Rider 在工具集和构建设置中支持 3.1 安装。所以我从我的系统中删除了 3.1 安装,它解决了大约一天的问题。

我今天又回来了,它又发生了。我尝试了各种我在谷歌上搜索的东西:取消选中“使用 Resharper Build”,向 .dockerignore 添加一些内容,验证克隆导致***目录中没有 %20。

目前我不确定哪些信息是相关的;如果需要代码或文件结构的某些部分来帮助排除故障,请告诉我。整个项目的根目录包含此处引用的 API 的目录、应用程序的目录(即 React)和 docker-compose.yml。 API 有自己的 Dockerfile,应用也有。

编辑:

最终修复它的是通过 these steps 完全删除 dotnet,然后重新下载 2.2

【问题讨论】:

.net core 允许并行安装多个版本。 docs.microsoft.com/en-us/dotnet/core/tools/… 指定 -f (--framework) 应该有助于选择框架,例如 docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build 也可以尝试指定 --force 它会强制解决所有依赖项。 【参考方案1】:

请转至setting > build, Execution, Deployment > Toolset and Build 然后你就可以看到这样的了。

之后,你必须改变use MSBuild version 默认的 MSBuild 版本可能是 Auto detected (##) .... 然后点击组合框,请选择支持您的版本。

在我的情况下,4.0 是击球手。 选择并应用它们后,您可以看到来自 Rider 的成功消息。 否则,Rider 会显示错误。如果您有错误,请尝试其他选项。 谢谢。

【讨论】:

以上是关于Rider 中的 dotnet:无法解析符号“Microsoft”的主要内容,如果未能解决你的问题,请参考以下文章

Rider 无法在 mac 上恢复 dotnet 核心包

在不需要的地方运行 dotnet 的 Rider 中的 Docker-compose

Rider 无法检测 Ubuntu 上的 .NET 核心安装

Rider 无法解析 nameof(OtherClass.Method)

Rider 2018.1 iOS 模拟器在构建后未运行

Rider 显示 MvcApplication(加载失败)