首页 > 解决方案 > Rider 中的 dotnet:无法解析符号“Microsoft”

问题描述

在 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 构建”,向 .dockerignore 添加一些内容,验证克隆导致顶级目录中没有 %20。

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

无法识别的导入截图

编辑:

最终修复它的是通过这些步骤完全删除 dotnet,然后重新下载 2.2

标签: c#docker.net-corerider

解决方案


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

在此处输入图像描述

之后,您必须更改use MSBuild version 默认的 MSBuild 版本,Auto detected (##) .... 然后单击组合框,然后选择支持您的版本。

在此处输入图像描述

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


推荐阅读