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”的主要内容,如果未能解决你的问题,请参考以下文章
在不需要的地方运行 dotnet 的 Rider 中的 Docker-compose
Rider 无法检测 Ubuntu 上的 .NET 核心安装