Executing .NET programs using the Mono VM

Linux
In Linux, you'll have to open up a terminal and type.

Alternatively, From Carlos Perelló: I think that the best solution is the binfmt feature with the wrapper that exists with Debian packages here(dead link)

If you want use it with Big endian machines, you should apply a patch (http://carlos.pemas.net/debian/mono/binfmt-detector-cli.c.diff)

It works really good and lets you use wine also, it reads the .exe file headers and check if it's a .net executable.

This way you just execute: ./my-cool-mono-application.exe and it works without the need of any wrapper.

Windows
A quick registry can add a 'Run with Mono' in the context menu when you right click an .exe file.

First, you must set an environment variable to the path of your mono installation. You need to name this  (in all caps).

Follow this guide to set the environment variable.
 * 1) In Vista, go to Start menu -> Control Panel -> System and Maintenance -> System and on the left sidebar, click the Advanced System Settings.
 * 2) It'll open up the System Properties. Near the bottom, click Environment Variables.
 * 3) Click New and enter in variable name:  and value:



Then save this registry file:

Copy this text and save as Run with Mono.reg Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\mono]

[HKEY_CLASSES_ROOT\exefile\shell\mono\Command] @=hex(2):25,00,4d,00,4f,00,4e,00,4f,00,50,00,41,00,54,00,48,00,25,00,5c,00,6d,\ 00,6f,00,6e,00,6f,00,2e,00,65,00,78,00,65,00,20,00,25,00,31,00,00,00

For those wary of registry files, those are hex numbers and they translate to % M O N O P A T H % \ m o n o. e x e  % 1