Develop and run .NET client or server applications for Mac

Mono for Mac


  -  345 MB  -  Open Source
  • Latest Version


  • Operating System

    Mac OS X 10.7 or later

  • User Rating

    Click to vote
  • Author / Product

    Mono Team / External Link

  • Filename


Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Mono

For those interested in downloading the most recent release of Mono for Mac or reading our review, simply click here.

All old versions distributed on our website are completely virus-free and available for download at no cost.

We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Mono Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Mono Screenshot 1

What's new in this version:

- We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.

Community improvements for AIX/PASE and Haiku:
- The ports for these systems received a bunch of improvements from community contributor Calvin Buckley

Class Libraries:
CoreFX integration:
- We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET
- In this release we tightened up our networking with a few bug fixes

Resolved Issues:
- [Mono.Debugger.Soft] Connections are not properly closed
- New arm64_32 architecture (watchOS 5) [arm64_32] make “Debug Mode” work on Watch series 4 with –interpreter
- Task calls SynchronizationContext.Post on cancelling
- DataContractSerializer is not available
- [Blazor] IL Linker not working correctly with IQueryable extensions
- condition ‘ji’ not met, with ‘dynamic’ and multithreading
- mono 5.20 hangs when called from native thread
- Null Pointer Exception after debugger pauses and then continues
- [iOS][Tests] There are a number of System.Numeric tests that fail on iOS 32b devices
- [iOS][Tests] A number of linq tests fail on iOS 32b devices
- [iOS][Tests] A number of tests from Microsoft.CSharp fail on iOS 32b devices.
- [iOS][Tests] Several corelib tests crash on iOS32b devices.
- [netcore] Make OverlappedTests.PackNegTest Pass
- [netcore] Make OverlappedTests.UnPackTest Pass
- MERP indefinitely hangs on application quit
- [debugger] Update client thread frames after SetIP.
- Mono.Net.Security.MonoTlsStream: Crash when stream appears to have already been disposed
- 1024 hard limit of open file descriptors
- Mono crashes during precompiling dll in fullaot mode
- Coverity: derefenrecing null in profiler (CID: 1307043) Skip degenerate qsort: num < 2, size == 0, base == 0
- [mini] run regression tests with fullaot+llvm
- typeof(object).GetMember(“”) does not return an empty array
- Native crash in ves_icall_System_Net_Sockets_Socket_Connect_internal
- IOException: Sharing violation on path …
- [netcore] AOT with unresolved dependencies hits asserts
- VS 16.2.0 regression: CopyToAsync from DeflateStream to GzipStream throws NotImplementedException
- Interpreter stack size is too large
- Embedded Mono hangs when using native threads
- Change netcore package to be using release builds
- LLVM: ““.AsSpan()[0] doesn’t throw IndexOutOfRangeException
- [wasm] Timers do not fire when run inside WebWorkers.
- Relocations in .text on arm
- [netcore] Regession with AOTed System.Private.CoreLib
- [llvm] Assertion: should not be reached at mini-llvm.c:7104
- [Mobile] DateTime.Now returns incorrect local time for one hour after entering DST in 39 locales.
- JitTests.Float fails on iOS devices in release mode on 2019-08
- Timezone data not handled correctly on FreeBSD
- System.IO.Path.GetFullPath(“\.pipepipename”): different results on Mono and .NET
- FileSystemEventArgs.FullPath throws ArgumentNullException
- make distclean fails after build w/ embedded zlib
- [netcore] Vector.CopyTo w/ LLVM emits wrong exception
- [WinForms] ControlBox property didn`t hide Close button and icon
- [merp] missing data in crashing reporting json native frames
- C# REPL Unusable on Mono 6 / Ubuntu 19
- Disposing the FileSystemWatcher does not close associated file descriptors
- SIGSEGV in mono_class_setup_vtable_general
- Date.Time parse issue (year 1948) Avoid creating un-representable DateTime for transition point
- Stream.ReadAsync continues on different thread
- mono_gc_finalize_notify spinning after process exit
- LLVM failed for String.GetHashCode
- [coop][interp] mono_threads_enter_gc_safe_region Cannot transition thread 0x1952b000 from STATE_BLOCKING with DO_BLOCKING
- Crash when debugging iOS application that throws on DispatchQueue
- [arm64_32] fix remaining regression tests
- [Wasm] Switch to PNSE FileWatcher & Exclude Tests
- [Wasm] Determine if System.Net.Http.UnitTests Failures are Relevant
- XmlSerializer Deserializing Property with same name as its enum type no longer works
- LLVM: recursive calls have overhead in JIT mode
- Starting in Mono 6.0 (2019-02), NotImplementedException prevents using StreamWriter with GZipStream for encodings that use a preamble
- File.GetCreationTimeUtc() returns the time last modified, not time created
- [merp] crash reports have Darwin kernel version in OSVersion field
- Out of bounds unhandled exception
- [wasm][xunit tests] RemoteExecutorTests.RemoteInvokeWritesToFile fails
- [wasm][xunit tests] System.Net.Security.Tests.SslStreamAlpnTests - MissingMethodException: Default constructor not found
- Regression: when debugger encounters a not-unhandled exception, it stops and shows “Dns.cs file not found” (Dns being the BCL class used)
- Marshalling managed exception contains cut off stacktraces
- SystemNative_CopyFile() call to fchmod() introduced in Mono 6.0 is not compatible with the external storage location on some Android OS versions and devices
- mono_aot_register_module conflicting definitions
- DriveInfo return empty space for system volume on MacOS 10.15 Catalina
- [merp] mono_summarize_unmanaged_stack tries to take a lock while calling decode_exception_debug_info
- System.BadImageFormatException when reflecting on BCL shipped with Mono
- mono_magic_trampoline being called more than expected
- Investigate heavy stack from System_Threading_Interlocked_Exchange_T_REF_T_REF__T_REF
- [merp] generate a crash report if process is killed with SIGTERM
- Debugging ‘async Task Name()' method makes app crash
- Await within method with return type Task makes debugging fail
- AOT + System.Reflection.Emit + ConstructorInfo doesn’t work as expected
- [Regression] Profiler’s calls log SIGABRTs when using GDI+ loader
- Delegate does not invoke target virtually
- Q: is using loader lock for domain seq_points access correct? (mono runtime) [runtime] Fix locking in mono_get_seq_points ().
- [merp] SendMicrosoftTelemetry icall doesn’t do any MERP logging when inducing a Managed Crash
- threadpool hang due to unlimited hill climbing
- Deadlock in GC during bridge callback from native thread on Android
- Mtouch argument interpreter crashes EntityFrameworkCore 3.0 iOS app
- [Bug] Segmentation Fault receiving message on WatchOS with debugger attached
- Native linking fails for armv7s
- [embedding] Chaining Mach exceptions to Mono signals using utility threads