Reputation: 2758
As instructed by the Rider IDE, I installed the .NET Core framework from Microsoft. I know that the installation was successful since I am able to run the dotnet
command from my terminal. However, after restarting Rider, I still get the following message:
Cannot detect .NET Core. Please install .NET Core and restart Rider.
Am I doing anything wrong?
Upvotes: 20
Views: 26940
Reputation: 3304
The root cause, in my case, was leftover configuration files from a previous installation of dotnet-sdk from the Ubuntu repositories. I had removed them and installed the packages from the Microsoft packages repository. But I had not completely removed them.
The cause was incorrect paths set in /etc/dotnet/install_location
and /etc/dotnet/install_location_x64
The solution was to run sudo apt-get purge dotnet-host-8.0
I was put on track to this solution by this answer from Amjad Abujamous. He was nice enough to include a link to his source, where I found an explanation of the root cause: youtrack.jetbrains.com
Upvotes: 0
Reputation: 11211
In my case despite installing dotnet-sdk-7.0
and dotnet --version
command returning correct version, I've been seeing no SDK in dotnet --info
.
The problem was that I had dotnet packages installed from different sources. There are a few sources you can download dotnet package: official Ubuntu feed and Microsoft feed. I wanted to use Microsoft feed, as it provided newer versions of dotnet for my distro version, but actually used both.
Here is how you can list all your dotnet packages:
sudo apt list --installed | grep dotnet
Here is how you can check source of your packages:
sudo apt policy dotnet-sdk-7.0
You just need to follow this docs. You need to get rid of official Ubuntu packages and install all of them from one source.
So: Remove all dotnet packages:
sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
Create files for apt preferences:
touch /etc/apt/preferences
Inside this file, paste this text. It will configure APT to ignore packages with those names in specific package source:
Package: dotnet* aspnet* netstandard*
Pin: origin "<your-package-source>"
Pin-Priority: -10
So if you configure it like this:
Package: dotnet* aspnet* netstandard*
Pin: origin "archive.ubuntu.com"
Pin-Priority: -10
It will ignore packages from archive.ubuntu.com
. So when you install dotnet-sdk-7.0
again, it will omit archive.ubuntu.com
and install it from Microsoft source.
You may have different package sources, depending on distro, you can check it like this:
sudo cat /etc/apt/sources.list.d/official-package-repositories.list
Upvotes: 1
Reputation: 4068
Neither reinstallation nor path opt/lib64/dotnet
works for me.
I have to use the path /var/run/host/usr/lib64/dotnet
for .NET cli executable path SDK instead.
Source: https://github.com/flathub/com.jetbrains.Rider/issues/36#issuecomment-1154737584
Upvotes: 0
Reputation: 920
Solution adapted from this answer on YouTrack.
Add the DOTNET_ROOT
environment variable in the file launchsettings.json
. In my case, it was:
"DOTNET_ROOT": "/usr/share/dotnet"
Upvotes: 4
Reputation: 837
My solution was run command dotnet new console
on root of project. Then, the templates are showed.
Upvotes: 1
Reputation: 2865
None of these worked for me. I am on PopOS and found a solution here shown in the below screenshot. I think in general it is still a bad idea to install anything from Jetbrains through the Snap store. I've had issues with Intellij and Pycharm as well dating back to ~2014 that were immediately resolved by not using the Snap store.
Upvotes: 2
Reputation: 1389
I made the rather silly mistake of installing .NET Core runtime but forgetting about .NET Core SDK (so the dotnet
tool still worked). Once I actually installed the SDK, Rider instantly detected it (.NET 3.1 and Rider 2019.3).
The suggestion to use dotnet --info
by masterwok quickly highlights this issue though.
Upvotes: 0
Reputation: 5131
I was just experiencing this issue due to a botched install of Xamarin Android on Arch Linux and was able to resolve it by doing the following:
First execute dotnet --info
to get the path of .NET Core SDKs installed:
.NET Core SDK (reflecting any global.json): Version: 2.1.500
Commit: b68b931422
Runtime Environment: OS Name: arch OS Version: OS Platform:
Linux RID: arch-x64 Base Path: /opt/dotnet/sdk/2.1.500/
Host (useful for support): Version: 2.1.6 Commit: 3f4f8eebd8
.NET Core SDKs installed:
2.1.500 [/opt/dotnet/sdk].NET Core runtimes installed: Microsoft.NETCore.App 2.1.6
[/opt/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Up one directory at /opt/dotnet/ there should be an executable named "dotnet." The absolute path to this file (/opt/dotnet/dotnet) should be set as the .NET Core CLI executable path value under File → Settings → Build, Execution, Deployment → Toolset and Build settings in Rider.
Just in case, here are my other toolset configuration settings:
Mono executable path: /usr/bin/mono
Use MSBuild version: Auto detected (15,0), /usr/lib/mono/msbuild/bin/MSBuild.dll
I also have the following values added to my PATH in .bashrc due to an error I received regarding Razor not being found:
export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks
export PATH=${PATH}:${MSBuildSDKsPath}
Upvotes: 8
Reputation: 818
You can set up the path to .NET CLI in Rider settings: menu File* → Settings → Build, Execution, Deployment → Toolset and Build. But usually Rider should auto detect it.
Please check what you have dotnet
in your PATH. Pay attention; you should restart Rider after installing the .NET Core SDK.
Upvotes: 1
Reputation: 4567
I managed to fix the issue setting
/opt/dotnet/dotnet
in
Settings | Build,Execution,Deployment |
Toolset and Build | .NET Core CLI executable path
Previously, I was using /usr/bin/dotnet
, but it doesn't work anymore. Also, auto detect seems to be broken.
Actually, /usr/bin/dotnet
, the path returned by which dotnet
, is just a shell file defering to /opt/dotnet/dotnet
, as its content is:
#!/bin/sh
export DOTNET_ROOT=/opt/dotnet
exec /opt/dotnet/dotnet $@
# vim: ts=2 sw=2 et:
Upvotes: 28