【发布时间】: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它会强制解决所有依赖项。