Install and setup .NET 5 on Raspberry Pi

Install and setup .NET 5 on Raspberry Pi

Here is how to install and setup Microsoft’s .Net Core 5 on Raspberry Pi, this tutorial covers installation for both 64 and 32 bit ARM architecture.

I am using Ubuntu 20.04, but Raspbian should work as well.

To check what OS architecture the Raspberry Pi is, run the following command.

uname -m

The output should be something like this. The example below shows an output of ARM 64 architecture.


The reason we are doing this test is so we could download the appropriate build archive of .Net Core 5.

Downloading of the wrong architecture will not run on the Pi. It will throw an error that states “dotnet file or folder not found”.

Downloads for ARM 64.

The .NET SDK 5.0.101.


The ASP.NET Core Runtime 5.0.1


Downloads for ARM 32.

The .NET SDK 5.0.101.


The ASP.NET Core Runtime 5.0.1


Creating the required directory and extracting these archives into the folder.

This folder is created as a hidden type because we don’t need to have the folders listed or shown in the file manager, this is the location where the executable and libraries of .Net are stored. If you want to change the location, feel free to do the required changes.

mkdir ~/.dotnet/

Extracting the archives to the .dotnet folder.

tar -xvf dotnet-sdk-5.0.101-linux-arm64.tar.gz -C ~/.dotnet
tar -xvf aspnetcore-runtime-5.0.1-linux-arm64.tar.gz -C ~/.dotnet

Setting up dotnet to work with bash.

Open the .bashrc file and add the following lines below, for this we are using nano, but you can use any editor of your choice.

nano ~/.bashrc

Add the lines below to the end of the .bashrc file.

export DOTNET_ROOT=$HOME/.dotnet 
export PATH=$PATH:$HOME/.dotnet

Save the file, by pressing Control + X + Y.

You can close this terminal session or SSH connection when you re-login you will have dotnet working.

If you want to continue with the same ssh or terminal session run this command and follow the other steps listed below.

source ~/.bashrc

Testing to see if it works correctly.

Let’s check the dotnet version.

dotnet --version

The output should be something similar to the one below.

ubuntu@pi:~$ dotnet --version

Let’s create our first dotnet project. This command will create a console application with the folder and project name myApp.

dotnet new console -o myApp

Compiling the application and running it.

cd myApp
dotnet build

The output should be something similar to this.

ubuntu@pi:~/projects/myApp$ dotnet build
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  myApp -> /home/ubuntu/projects/myApp/bin/Debug/net5.0/myApp.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:20.41

Now let’s run the app.

dotnet run

The output will be like the one below.

ubuntu@pi:~/projects/myApp$ dotnet run
Hello World!

If you want to have a complete development environment with an IDE like interface like Microsoft’s Visual Studio Code. Follow the guide listed below to setup Code-Server on Raspberry Pi.

Thank you for taking the time to read this article, have a great new year.

13 responses to “Install and setup .NET 5 on Raspberry Pi”

  1. Thank you very much. Helped me confirm what to do.

    1. Hi Jason,

      Happy to know it helped.

  2. Thanks for the perfect explanation.
    Juggled with snapd dotnet-sdk, so removed it and finally this post helped me install dotnet in my Pi. 🙂

    1. Unfortunately I have few projects of dotnet core 3.0/1 as well and now when I try to run those projects it fails and complains to install required framework.

      Is it possible to install multiple dotnet frameworks in Pi? As generally in Windows everything is managed by installer and backward compatibility is almost there.

      1. Hi Patel,

        Yes, It is possible to have multiple versions of dotnet.

  3. Hi Darryl,
    Thank you so much for this post. Very clear and straightforward. Just on the lines to extract the files with tar, It looks like it needs a trails slash, after ~/.dotnet (~/.dotnet/)

    Good job!

    1. Thank you for the feedback, I updated it.

      Have a great day 🙂

  4. Hi Darryl, thanks for the info.
    I can see running command line programs in the .NET5, but is there a way to also create UI’s as in Windows, to control GPIO hardware, etc. on the Pi?

    1. Hi Tony, .NET5 for Linux does not offer or officially supports creation of GUI application, but with third party tools and libraries it might be possible.

      I looked this up and came across this project, which might help you create GUI apps for Linux using .NET5 for Linux:

      I believe .NET6 will support GUI Linux application creation with the help of MAUI.

      Thank you for the comment, if you have more questions feel free to reply to this thread.

  5. After following your guide, Im got the next crap:

    pi@raspberrypi:~ $ ls
    bash: ls: command not found
    pi@raspberrypi:~ $ man ls
    bash: man: command not found
    pi@raspberrypi:~ $

    What I do wrong ?

    1. I am not sure at what point you started getting that error, but if you delete the “.bashrc” remove everything in that file that should fix the issue.

      Let me know if this tip helps you

  6. Thanks a lot, I was having trouble getting dotnet through snap. This works!

  7. Hi Darryl,

    I know really *nothing* about dotnet, I only know that I must run a dotnet application and that I must have dotnet in my setup. The application is an EEPROM programmer; it should run on any dotnet capable platform, connected to an Arduino and finally to the board where the EEPROM is installed.

    The setup is: Raspberry 4 —-(USB)—->> Arduino —->> 6502 computer

    The author of the application ( simply claims that you must download and install dotnet Runtime and then run the application.

    I downloaded and *manually* installed dotnet as per MS instruction here:

    dotnet seems OK:

    pi@raspberrypi:~ $ dotnet –info

    Host (useful for support):
    Version: 5.0.13
    Commit: b3afe99225

    .NET SDKs installed:
    No SDKs were found.

    .NET runtimes installed:
    Microsoft.NETCore.App 5.0.13 [/home/pi/dotnet/shared/Microsoft.NETCore.App]

    To install additional .NET runtimes or SDKs:
    pi@raspberrypi:~ $

    But when I try to run the application, the result is:

    pi@raspberrypi:~ $ dotnet Arduino/65C02-Tool/eeprom-programmer.sln
    Could not execute because the application was not found or a compatible .NET SDK is not installed.
    Possible reasons for this include:
    * You intended to execute a .NET program:
    The application ‘Arduino/65C02-Tool/eeprom-programmer.sln’ does not exist.
    * You intended to execute a .NET SDK command:
    It was not possible to find any installed .NET SDKs.
    Install a .NET SDK from:
    pi@raspberrypi:~ $

    Do you think you can give me a hint on what’s wrong?
    Thank you,

Leave a Reply

Your email address will not be published.