【发布时间】:2018-02-12 03:53:18
【问题描述】:
按照 Rider IDE 的指示,我安装了 Microsoft 的 .NET Core 框架。我知道安装成功,因为我可以从终端运行dotnet 命令。但是,重新启动 Rider 后,我仍然收到以下消息:
无法检测到 .NET Core。请安装 .NET Core 并重启 Rider。
我做错了什么吗?
【问题讨论】:
按照 Rider IDE 的指示,我安装了 Microsoft 的 .NET Core 框架。我知道安装成功,因为我可以从终端运行dotnet 命令。但是,重新启动 Rider 后,我仍然收到以下消息:
无法检测到 .NET Core。请安装 .NET Core 并重启 Rider。
我做错了什么吗?
【问题讨论】:
我设法修复了问题设置
/opt/dotnet/dotnet
在
Settings | Build,Execution,Deployment |
Toolset and Build | .NET Core CLI executable path
以前,我使用的是/usr/bin/dotnet,但它不再起作用了。此外,自动检测似乎被破坏了。
其实/usr/bin/dotnet,which dotnet返回的路径,只是一个遵循/opt/dotnet/dotnet的shell文件,因为它的内容是:
#!/bin/sh
export DOTNET_ROOT=/opt/dotnet
exec /opt/dotnet/dotnet $@
# vim: ts=2 sw=2 et:
【讨论】:
由于在 Arch Linux 上安装了 Xamarin Android 的错误,我刚刚遇到了这个问题,并且能够通过执行以下操作来解决它:
首先执行dotnet --info获取.NET Core SDK安装路径:
.NET Core SDK(反映任何 global.json):版本:2.1.500
提交:b68b931422
运行环境:操作系统名称:arch 操作系统版本:操作系统平台:
Linux RID:arch-x64 基本路径:/opt/dotnet/sdk/2.1.500/
主机(用于支持):版本:2.1.6 提交:3f4f8eebd8
已安装 .NET Core SDK:
2.1.500 [/opt/dotnet/sdk].NET Core 运行时已安装:Microsoft.NETCore.App 2.1.6
[/opt/dotnet/shared/Microsoft.NETCore.App]
要安装其他 .NET Core 运行时或 SDK:
https://aka.ms/dotnet-download
/opt/dotnet/ 的上一个目录应该有一个名为“dotnet”的可执行文件。此文件的绝对路径 (/opt/dotnet/dotnet) 应设置为 .NET Core CLI 可执行路径 文件 → 设置 → 构建、执行、部署 → 工具集和构建 Rider 设置下的值。
以防万一,这是我的其他工具集配置设置:
单声道可执行路径: /usr/bin/mono
使用 MSBuild 版本:自动检测到 (15,0),/usr/lib/mono/msbuild/bin/MSBuild.dll
由于我收到关于未找到 Razor 的错误,我还在 .bashrc 中的 PATH 中添加了以下值:
导出 MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks
导出 PATH=${PATH}:${MSBuildSDKsPath}
【讨论】:
您可以在 Rider 设置中设置 .NET CLI 的路径:菜单文件* → 设置 → 构建、执行、部署 → 工具集和构建。但通常 Rider 应该自动检测到它。
请检查您的 PATH 中有什么 dotnet。注意;您应该在安装 .NET Core SDK 后重新启动 Rider。
【讨论】:
Settings/Build,Execution,Deployment/Toolset and Build/.NET Core CLI executable path 中指定 /opt/dotnet/dotnet 的问题
这些都不适合我。我在 PopOS 上找到了一个解决方案 here,如下图所示。我认为总的来说,通过 Snap 商店从 Jetbrains 安装任何东西仍然不是一个好主意。我在 Intellij 和 Pycharm 上遇到的问题可以追溯到 ~2014 年,通过不使用 Snap 商店立即得到解决。
【讨论】:
我犯了一个相当愚蠢的错误,安装 .NET Core runtime 但忘记了 .NET Core SDK(所以dotnet 工具仍然有效)。在我实际安装 SDK 后,Rider 立即检测到它(.NET 3.1 和 Rider 2019.3)。
使用dotnet --infoby masterwok 的建议很快就突出了这个问题。
【讨论】: