descriptionMirror of the official Mono project git repository
homepage URLhttp://www.mono-project.com/
repository URLhttps://github.com/mono/mono.git
ownerknittl89+git@googlemail.com
last changeThu, 11 Apr 2024 08:26:27 +0000 (11 10:26 +0200)
last refreshThu, 18 Apr 2024 18:56:30 +0000 (18 20:56 +0200)
content tags
add:
README.md

Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.

The Mono project is part of the .NET Foundation

Join us on Discord in the #monovm channel:

Contents

  1. Compilation and Installation
  2. Using Mono
  3. Directory Roadmap
  4. Contributing to Mono
  5. Reporting bugs
  6. Configuration Options
  7. Working with Submodules

Build Status

Public CI: Azure Pipelines

Legacy Jenkins CI (no longer available publicly):

OSArchitectureStatus
Debian 9amd64debian-9-amd64
Debian 9i386debian-9-i386
Debian 9armeldebian-9-armel
Debian 9armhfdebian-9-armhf
Debian 9arm64debian-9-arm64
OS Xamd64osx-amd64
OS Xi386osx-i386
Windowsamd64windows-amd64
Windowsi386windows-i386
CentOSs390x (cs)centos-s390x
Debian 9ppc64el (cs)debian-9-ppc64el
AIX 6.1ppc64 (cs)aix-ppc64
FreeBSD 12amd64 (cs)freebsd-amd64

(cs) = community supported architecture

Compilation and Installation

Building the Software

Please see our guides for building Mono on Mac OS X, Linux and Windows.

Note that building from Git assumes that you already have Mono installed, so please download and install the latest Mono release before trying to build from Git. This is required because the Mono build relies on a working Mono C# compiler to compile itself (also known as bootstrapping).

If you don't have a working Mono installation

If you don't have a working Mono installation, you can try a slightly more risky approach: getting the latest version of the 'monolite' distribution, which contains just enough to run the 'mcs' compiler. You do this with:

# Run the following line after ./autogen.sh
make get-monolite-latest

This will download and place the files appropriately so that you can then just run:

make

The build will then use the files downloaded by make get-monolite-latest.

Testing and Installation

You can run the mono and mcs test suites with the command: make check.

Expect to find a few test suite failures. As a sanity check, you can compare the failures you got with https://jenkins.mono-project.com/.

You can now install mono with: make install

You can verify your installation by using the mono-test-install script, it can diagnose some common problems with Mono's install. Failure to follow these steps may result in a broken installation.

Using Mono

Once you have installed the software, you can run a few programs:

See the man pages for mono(1), mcs(1) and monodis(1) for further details.

Directory Roadmap

Contributing to Mono

Before submitting changes to Mono, please review the contribution guidelines. Please pay particular attention to the Important Rules section.

Reporting bugs

To submit bug reports, please open an issue on the mono GitHub repo.

Please use the search facility to ensure the same bug hasn't already been submitted and follow our guidelines on how to make a good bug report.

Configuration Options

The following are the configuration options that someone building Mono might want to use:

Working With Submodules

Mono references several external git submodules, for example a fork of Microsoft's reference source code that has been altered to be suitable for use with the Mono runtime.

This section describes how to use it.

An initial clone should be done recursively so all submodules will also be cloned in a single pass:

    $ git clone --recursive git@github.com:mono/mono

Once cloned, submodules can be updated to pull down the latest changes. This can also be done after an initial non-recursive clone:

    $ git submodule update --init --recursive

To pull external changes into a submodule:

    $ cd <submodule>
    $ git pull origin <branch>
    $ cd <top-level>
    $ git add <submodule>
    $ git commit

By default, submodules are detached because they point to a specific commit. Use git checkout to move back to a branch before making changes:

    $ cd <submodule>
    $ git checkout <branch>
    # work as normal; the submodule is a normal repo
    $ git commit/push new changes to the repo (submodule)

    $ cd <top-level>
    $ git add <submodule> # this will record the new commits to the submodule
    $ git commit

To switch the repo of a submodule (this should not be a common or normal thing to do at all), first edit .gitmodules to point to the new location, then:

    $ git submodule sync -- <path of the submodule>
    $ git submodule update --recursive
    $ git checkout <desired new hash or branch>

The desired output diff is a change in .gitmodules to reflect the change in the remote URL, and a change in /<submodule> where you see the desired change in the commit hash.

License

See the LICENSE file for licensing information, and the PATENTS.TXT file for information about Microsoft's patent grant.

Mono Trademark Use Policy

The use of trademarks and logos for Mono can be found here.

shortlog
7 days ago Alexander KöplingerAdd root nuget.config to ensure CFS protectionmain
2024-03-28 Alexander KöplingerUse macOS build pool for .msi in mono-mono-signing...
2024-03-28 Alexander KöplingerConvert mono-mono-signing.yml to 1ES PT templates
2024-03-28 Jo ShieldsStop using azureedge.net CDN (#21757)
2024-02-13 Alexander KöplingerBump nuget.exe to 6.6.2
2024-01-06 Alexander KöplingerUpdate CODEOWNERS
2023-09-09 igristovFix typo in OIDs corresponding to SHA256, SHA384, and...
2023-08-01 Alexander KöplingerRemove DbLinq/sqlmetal unused .csproj files
2023-07-26 Mitchell Hwang[libs][TimeZoneInfo] Bound transition time conversion...
2023-07-24 Mitchell Hwang[libs] Update TimeZoneInfo to read new version of tzdat...
2023-07-24 Alexander Köplinger[Mono.Security] Adjust test after EKU fix
2023-07-11 Alexander Köplinger[Mono.Security] Add additional validation to Authentico...
2023-06-14 Alexander KöplingerBump nuget.exe to v6.6.1
2023-06-01 glopesdev[WinForms] Improve compatibility of property grid custo...
2023-05-16 Tobias MollstamFixed compile errors when DEBUG is defined (#21656)
2023-05-15 Mauro Agnoletti[debugger] Ports from dotnet/runtime to maintain compat...
...
tags
2 months ago mono-6.12.0.206
8 months ago mono-6.12.0.205
9 months ago mono-6.12.0.200
10 months ago mono-6.12.0.199
11 months ago mono-6.12.0.198
17 months ago mono-6.12.0.190
18 months ago mono-6.12.0.188
20 months ago mono-6.12.0.185
20 months ago mono-6.12.0.184
21 months ago mono-6.12.0.183
22 months ago mono-6.12.0.182
22 months ago mono-6.12.0.181
23 months ago mono-6.12.0.179
23 months ago mono-6.12.0.178
23 months ago mono-6.12.0.177
2 years ago mono-6.12.0.174
...
heads
7 days ago main
3 weeks ago 2020-02
22 months ago 2018-06
2 years ago mono-ps4
3 years ago 2019-12
3 years ago 3.2-wasm
4 years ago aj-wasm-dbg-improve-vt-descr
4 years ago aj-wasm-viz-delegates
4 years ago 2019-10
4 years ago merp-restart-threads-later
4 years ago 2019-08
4 years ago android-sdk-interp-2
4 years ago 2019-08-xcode11.4
4 years ago type-isvaluetype
4 years ago 2019-08-xcode11.3
4 years ago 20190
...
forks
Cached version (3694s old)
mono-project/dkf.git knittl89+git@googlemail.com 11 years ago