- Download
- Mono for macOS is available as a Mac Package (.pkg)
- 1 Add the Mono repository to your system
- Ubuntu 20.04 (amd64, armhf, arm64, ppc64el)
- Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)
- Ubuntu 16.04 (i386, amd64, armhf, arm64, ppc64el)
- 2 Install Mono
- 3 Verify Installation
- Notes
- 1 Add the Mono repository to your system
- Debian 10 (i386, amd64, armhf, arm64, armel, ppc64el)
- 2 Install Mono
- 3 Verify Installation
- Notes
- 1 Add the Mono repository to your system
- Raspbian 10 (armhf)
- 2 Install Mono
- 3 Verify Installation
- Notes
- Mono for Windows is available as a Windows Installer file
- Mono is available on Docker Hub
- Available tags
- Release Notes
- MonoDevelop IDE
- Older releases
- Install Mono on Windows
- Gtk#
- Mono in the Windows 10 Bash
Download
Source code is available on GitHub (viewing only) or as a Tarball.
Mono for macOS is available as a Mac Package (.pkg)
Please refer to the installation guide for more information about how to install and configure your Mono environment.
Supported on macOS 10.9 and later. Check the uninstall instructions if you want to remove Mono from your Mac.
* We recommend this package if you’re using Visual Studio for Mac since the stability of Visual Studio for Mac is only guaranteed with the Visual Studio channel releases.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Ubuntu versions too but we only test the ones listed below.
Ubuntu 20.04 (amd64, armhf, arm64, ppc64el)
sudo apt install ca-certificates gnupg sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update
Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)
sudo apt install ca-certificates gnupg sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update
Ubuntu 16.04 (i386, amd64, armhf, arm64, ppc64el)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF sudo apt install apt-transport-https ca-certificates echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update
2 Install Mono
sudo apt install mono-devel
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Debian versions too but we only test the ones listed below.
Debian 10 (i386, amd64, armhf, arm64, armel, ppc64el)
sudo apt install dirmngr ca-certificates gnupg sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update
2 Install Mono
sudo apt install mono-devel
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
1 Add the Mono repository to your system
The package repository hosts the packages you need, add it with the following commands.
Note: the packages should work on newer Raspbian versions too but we only test the ones listed below.
Raspbian 10 (armhf)
sudo apt install dirmngr ca-certificates gnupg sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list sudo apt update
2 Install Mono
sudo apt install mono-devel
The package mono-devel should be installed to compile code.
The package mono-complete should be installed to install everything — this should cover most cases of «assembly not found» errors.
The package mono-dbg should be installed to get debugging symbols for framework libraries — allowing you to get line numbers in stack traces.
The package referenceassemblies-pcl should be installed for PCL compilation support — this will resolve most cases of «Framework not installed: .NETPortable» errors during software compilation.
The package ca-certificates-mono should be installed to get SSL certificates for HTTPS connections. Install this package if you run into trouble making HTTPS connections.
The package mono-xsp4 should be installed for running ASP.NET applications.
3 Verify Installation
After the installation completed successfully, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Notes
Mono on Linux before 3.12 by default didn’t trust any SSL certificates so you got errors when accessing HTTPS resources. This is not required anymore as 3.12 and later include a new tool that runs on package installation and syncs Mono’s certificate store with the system certificate store (on older versions you had to import Mozilla’s list of trusted certificates by running mozroots —import —sync ). Some systems are configured in a way so that the necessary package isn’t pulled in when Mono is installed, in those cases make sure the ca-certificates-mono package is installed.
Mono for Windows is available as a Windows Installer file
Please refer to the installation guide for more information about how to install and configure your Mono environment.
Supported on Windows 7, 8, 10 or later.
GTK# for .NET
Installer for running Gtk#-based applications on Microsoft .NET:
Mono is available on Docker Hub
The simplest way to get started is:
$ docker run -it mono:latest bash
This will download the latest Mono Docker image, create a container and put you into an interactive shell.
Available tags
There are several tags for selecting the desired Mono version:
- latest — Always points to the latest release
- X.X.X.X — points to a specific version, e.g. 5.8.0.108
- X.X.X — points to the latest version in the X.X.X series, e.g. 5.8.0
- X.X — points to the latest version in the X.X series, e.g. 5.8
- X — points to the latest version in the X series, e.g. 5
The latest version, one minor version before that and the last version before a major version bump are periodically rebuilt by Docker Hub to pull in updates from the base Debian image.
All other version tags are still available, but won’t get those updates so you need to keep your images up to date by running apt update yourself. We encourage you to move to latest Mono releases as soon as they’re available.
Starting with Mono 5.2 we provide a slim variant (e.g. latest-slim ) which only contains the bare minimum to run a simple console app. You can use this as a base and add just what you need.
Release Notes
Check out the release notes of all Mono versions on the releases page.
MonoDevelop IDE
Please visit the MonoDevelop website for more details about our cross-platform IDE.
Older releases
To access older Mono releases for macOS and Windows, check the archive on the download server. For Linux, please check the «Accessing older releases» section in the installation guide.
Install Mono on Windows
Mono runs on Windows, this page describes the various features available for users who want to use Mono on Windows as well as using Mono-based technologies on Windows without Mono (like Gtk#).
- Download the latest Windows installer from the download page.
- Run the installer and accept the terms of the license. Mono is now installing:
The installer creates a “Open Mono Command Prompt” shortcut under the Mono program group in the start menu. This shortcut starts a command shell with Mono-relevant path information already configured, which means all the Mono tools “just work”.
At this point, it’s a good idea to run through the basic hello world examples on this page to verify Mono is working correctly.
Gtk#
Gtk# is included as part of the Mono installation, this will allow you to create Gtk# applications on Windows with the Mono runtime which you can later deploy into Linux. See the Gtk# page for more details about the toolkit, or go directly to the Gtk# beginner’s guide.
Alternatively, if you only want to use Gtk# on Windows, without Mono, you can use the Gtk# installer for the .NET Framework.
Mono in the Windows 10 Bash
Windows 10 Anniversary Update and greater come with an experimental, optional Linux subsystem that exposes bash as an alternative shell. This can be used to install the Debian/Ubuntu version of Mono alongside or instead of the Windows version. Note that this feature is in beta and you need to manually enable it. For more information about how to install Mono inside Windows Bash and known problems, refer to this issue.