Mono
Mono is an open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET.
Contents
Installation
Mono can be installed with the package mono, available in the official repositories.
If you need VisualBasic.Net support you have to install the VisualBasic.Net interpreter with the package mono-basic, available in the official repositories.
MonoDevelop calls xterm when you run your project. You might install it, when you're writing a console application.
Running Mono applications
You can execute Mono binaries by calling mono
manually:
$ mono programsname.exe
You can also execute Mono binaries directly, just like native binaries:
$ chmod 755 exefile.exe $ ./exefile.exe
Testing Mono
Make a new file:
test.cs
using System; public class Test { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
Then run:
$ mcs test.cs $ mono test.exe Hello world!
Development
Starting to develop in Mono/C# is very easy. Just install the MonoDevelop IDE and debugger support with packages monodevelop, monodevelop-debugger-gdb[broken link: replaced by monodevelop], available in the official repositories.
If you want the API documentation browser and some testing and development tools you have to install mono-tools.
Troubleshooting
I get an error "cannot execute "path/to/your/binary" file name has not been set."
You might install xterm, since MonoDevelop starts xterm when you press on run. This might be a possible dependency.
I get an error when I try to run Mono binaries directly: "cannot execute binary file"
The binfmt_misc handler for Mono has not yet been set up, as explained in detail on the Mono Project website.
To fix this, restart the systemd-binfmt
service.
I get an TLS handshake (or similar certificate based) error
Try mozroots --import --ask-remove
which should update monos certificates. mozroots
is part of the mono package.