.NET Core is a new FOSS software framework from Microsoft for C#, Visual Basic, and F#. It is designed to be cross-platform, modular and apt for modern applications, as opposed to its predecessor, the .NET Framework.
If you only want to run .NET Core managed applications, install the package.
To build apps with .NET Core, installas well.
PATH, otherwise dotnet tools will not work from shell.
Install multiple versions manually
You can install multiple versions of the .NET Core SDK or runtime side by side by using the dotnet-install.sh script provided by the .NET Foundation. You can find the documentation of the script here.
For instance, this command would install the latest version found in the "current" channel in
# ./dotnet-install.sh --install-dir /usr/share/dotnet -channel Current -version latest
You may want to simulate the installation first by using the
Once installed, you can verify the SDKs available:
$ dotnet --list-sdks 2.2.108 [/usr/share/dotnet/sdk] 3.0.103 [/usr/share/dotnet/sdk] $ dotnet --version 3.0.103
Uninstall manually installed version
You may want to remove outdated versions installed with
dotnet-install.sh. The automated .NET Uninstall Tool does still not support linux, so the deinstallation has to be done manually.
$ dotnet --list-sdks 5.0.100 [/usr/share/dotnet/sdk] 5.0.102 [/usr/share/dotnet/sdk]
Deinstallation of the sdk:
SDK_VERSION="5.0.100" DOTNET_UNINSTALL_PATH="/usr/share/dotnet" sudo rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION
dotnet-install.sh also dotnet host and shared packages are getting installed, which may have to get removed additionally depending on the release.
Complete deinstallation of the .NET Version (sdk, host, shared):
SDK_VERSION="5.0.100" DOTNET_VERSION="5.0.0" DOTNET_UNINSTALL_PATH="/usr/share/dotnet" sudo rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION sudo rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.NETCore.App/$DOTNET_VERSION sudo rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.All/$DOTNET_VERSION sudo rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.App/$DOTNET_VERSION sudo rm -rf $DOTNET_UNINSTALL_PATH/host/fxr/$DOTNET_VERSION
Install multiple versions via AUR
Some of the AUR dotnet packages are made to be installed alongside each other. Only one host package (AUR or ) is needed containing the command-line tool and you can install any of the available SDKs and Runtimes (latest packages of all major versions) next to it. List of compatible packages:
- AUR, AUR, AUR, AUR
- AUR, AUR, AUR, AUR
- AUR, AUR, AUR,
- AUR, AUR, AUR, AUR
- AUR, AUR, AUR
Install PowerShell Core
# dotnet tool install --global PowerShell
to update to current version
# dotnet tool update --global PowerShell
Telemetry is enabled by default but can be disabled by setting environment variable
All dotnet core programs that use
System.CommandLine.Parser to parse their arguments have auto-complete support. Enabling it just requires adding a few lines to your
.zshrc file, as described in their documentation. Instructions for standalone binaries are here.
It was not possible to find any compatible framework version
If you get the following error when you try to run a newly created project, you no longer need to set a
DOTNET_ROOT variable as described in the solutions of various GitHub issues. Arch's dotnet package (as of 3.1) installs it to the Microsoft recommended location of
$ dotnet run
It was not possible to find any compatible framework version The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found. - No frameworks were found. You can resolve the problem by installing the specified framework and/or SDK. The specified framework can be found at: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=x64&rid=arch-x64
This is caused because the runtime is shipped as a separate package in Arch. You just need to make sure you have thepackage installed as well.
"the required library libhostfxr.so could not be found" error
Some of the dotnet SDK tools (for example libman, dotnet-watch etc.) may expect you to have the environment variable
DOTNET_ROOT pre-configured. If it's not, an error like this one could be observed: 
A fatal error occurred, the required library libhostfxr.so could not be found. If this is a self-contained application, that library should exist in [/home/my_user/.dotnet/tools/.store/microsoft.web.librarymanager.cli/1.0.172/microsoft.web.librarymanager.cli/1.0.172/tools/netcoreapp2.1/any/]. If this is a framework-dependent application, install the runtime in the default location [/usr/share/dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location.
The workaround is to manually export
DOTNET_ROOT in your shell:
SDK specified could not be found
This is believed to caused by a conflict between the Mono and MSBuild SDK libs and the dotnet core ones. To fix this export the path manually in your shell (replacing the version number as necessary) e.g:
export MSBuildSDKsPath=$( echo /usr/share/dotnet/sdk/3.*/Sdks );