Switch branches/tags
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
build Fix s390x build broken by incorrect specification of the msgfi instuc… ( Aug 11, 2018
class Fix process leak in process enumeration. (#10156) Aug 17, 2018
docs Remove ChangeLog files from the repo Jan 29, 2016
errors [mcs] Constrain expression bodied accessors to C# 7 (#9547) Jul 14, 2018
ilasm Move to generating msbuild choose elements to get if-else selection b… Aug 9, 2018
jay Updates to support building the BCL using Visual Studio 2017 on windo… Feb 22, 2018
mcs Move to generating msbuild choose elements to get if-else selection b… Aug 9, 2018
nunit24 Move to generating msbuild choose elements to get if-else selection b… Aug 9, 2018
packages [roslyn][msbuild] Copy the new Microsoft.Managed.Core.targets file in… May 29, 2018
tests [mcs] Don't wrap exception expression in contextual return. Fixes #9505 Jul 23, 2018
tools [reflection] Assembly.LoadFile should throw ArgumentException for rel… Aug 16, 2018
.gitattributes Fix Windows build due to line ending changes in sed Feb 23, 2017
.gitignore [ci] Update csproj files during PRs (#8052) Apr 9, 2018
AUTHORS Remove outdated info and unused files from mcs/ (#4916) May 23, 2017
COPYING Remove outdated info and unused files from mcs/ (#4916) May 23, 2017
CodingStyle Remove outdated info and unused files from mcs/ (#4916) May 23, 2017
INSTALL.txt Remove outdated info and unused files from mcs/ (#4916) May 23, 2017
Makefile [ci] Update csproj files during PRs (#8052) Apr 9, 2018
MonoIcon.png `head -n2 mbas\changelog` May 31, 2002
README Remove outdated info and unused files from mcs/ (#4916) May 23, 2017
ScalableMonoIcon.svg the mono logo converted to svg Nov 9, 2002
diff.html.in [csproj] Fix diff rendering when XML comments appear in the diff (#8642) May 9, 2018
mkinstalldirs Missing file Jul 14, 2003

README

This contains the C# components of the Mono project.

	* Compilers written in C#

	* Class Libraries.

	* Regression Test Suites

To install this source code, look at the INSTALL file in the `mono'
package module which drives the compilation of this directory.

* Layout
========

	build/
		Rules, configuration and makefile components to build
		this module.

	class/
		The class libraries.

	docs/
		Some notes on the compiler and the class libraries.

	errors/
		Sample programs that should generate errors by the C# compiler.

	ilasm/
		The IL assembler.

	jay/
		Yacc-based parser generator.

	mcs/
		The Mono C# compiler

	nunit24/
		An old copy of the NUnit 2.4 library that we ship for historical reasons.

	packages/
		Integrates some packages from NuGet (like Roslyn) into the build system.

	tests/
		Regression test suite for the C# compiler

	tools/
		Various small development tools: CorCompare used to compare
		two assemblies for differences in the API; csharp is a C# REPL;
		cil-strip trims IL from assemblies.

* Building Individual Directories
=================================

You can build individual components in the hierarchy by running the command
"make", and to install it use "make install".

By default, the 4.x profile is built, if you want to build other profiles,
use the following command:

	make PROFILE=<profilename>

And to install:

	make PROFILE=<profilename> install

To turn on verbose mode in the build (for example to diagnose a
problem), you can use the V=1 flag, like this:

	make V=1

* Running Unit tests
====================

You can run unit tests in individual components by running the command:

	make run-test

If you want to only run the tests in a single fixture (say
'MonoTests.System.TypeTest'), you can use

	make run-test TEST_FIXTURE=System.TypeTest

* Acknowledgements
==================

Thanks a lot to Sergey Chaban for his help during the development of
the C# compiler.