I can run the application from the command line as the instructions say. But when I open the file in Rider 'Forms' in 'using System.Windows.Forms;' is red (and everything depending on it). Obviously I can not run the program from Rider and get the error: Program.cs(2, 22): [CS0234] The type or namespace name 'Forms' does not exist in the namespace 'System.Windows' (are you missing an assembly reference?).

I have Ubuntu 18 running in a VirtualBox. Installed dot net core as shown under prerequisites link. Logged in to Ubuntu as root. When I run the ./rider.sh, It returns "Killed". I don't see that message in the .sh file... Linux newb. Any ideas?

EDIT: Problem was allocated memory in VirtualBox. Bumped to 6Gb and all is good.

On Linux Rider does not detect dot net core even though it is installed. Mono is detected. How does Rider find the dot net installation? The CLI tools are on my path and work just fine from the command line. I have looked and looked but I can't find any information or configuration settings that I can configure to make this work.

Thanks for pointing that out. I was able to get things working with that information. It should be noted that Rider seems to be making some assumptions about the path where the dotnet executable is found at. In my case the executable in the /usr/bin directory is actually a shell script that sets up the environment before calling the real dotnet executable /opt/dotnet/dotnet . You have to point the configuration at the real dotnet executable or Rider will not find the SDK or runtime. I would think this would be more portable if Rider just ran "dotnet --list-sdks" to find the install SDKs and "dotnet --list-runtimes" verses making assumptions about how dot net is installed on the host systems. This is especially true of Linux distros which may move things around or like in my case use a wrapper script that makes things easy from the command line but not so easy for Rider to make assumptions about file system layout.

We try to find dotnet in path and use it as a first choice. Why did you made such a thing with an executable in the /usr/bin directory? Is there recommendations to do things this way? Could you share with us? How common is this approach? It may also help, if you share the whole wrapper script (somewhere in gist). Thanks!

Another issue you will have relates to msbuild the mono version of msbuild does not work in all cases with dotnet core. I don't remember off the top of my head where those failures are but to fix it you need to use the dotnet core version of msbuild which was included when you installed dotnet core. You can leave mono msbuild installed if you want just know that if you do you will have to call each explicitly depending on what you are building. I personally have a script file in ~/bin/msbuild which contains:

#!/bin/sh

exec /usr/bin/dotnet msbuild "$@"

where /usr/bin/dotnet is the script that sets things up for dotnet core and executes /opt/dotnet/dotnet

Then I have ~/bin first in my path so the msbuild that I have defined is found first. After doing that things have worked as expected in Rider.

Oh on the command line after you have that script defined and in your path correctly when you run it the out put will be :

Don't forget depending on how you are launching Rider you may need to logout/login so that your new path will be seen. Or if you are launching rider from a script you could just change/alter the path for rider then restart it.