Mono 1.2.2 Release, December 4th, 2006

Mono 1.2.2 is an update to Mono 1.2.1 in the Mono 1.2 series, it is a bug fix release for all the supported components, but also includes updates on the 2.0 stack.

Mono Migration Assistant

Jonathan Pobst released the Mono Migration Analysis tool as part of the Mono 1.2 launch, and we were able to get a tremendous amount of feedback on what features people depended on.

Both features that were known to have limitations in Mono (they are called "MonoTODOs") as well as APIs that we have not yet implemented.

Some early results from the submissions we have received are here and here.

This release addresses many of the issues that were reported: implementation of many APIs that developers needed, removal of incorrect MonoTODOs that we had accumulated over the years and clarifications to many of the MonoTODOs to actually describe the limitations found.

Specifically, this release:

New in Mono 1.2.2

This release contains many bug fixes to the C# compiler, Windows.Forms and ASP.NET. Developers and users are encouraged to upgrade to this release.

This release also includes a critical fixe to the runtime startup. Heavily multi-threaded applications would have crashed otherwise.

New Moma

A new version of Moma, available with this release has been prepared: it has been updated to use the 1.2.2 API, contains an updating mechanism (so we can update the APIs without releasing new Momas) and we optionally allow developers to enter information that you want to send to the Mono team [Jonathan Pobst].


Jonathan Pobst implemented many new classes from Windows.Forms 2.x. Mono now supports ContextMenuStrips, ToolStripContainers, ToolStripDropDownButtons, ToolStripManager, and ToolStripSplitButtons.

Many updates and bug fixes, specially to MDI code.

C# Compiler

We found another series of problems with anonymous methods. Martin fixed all the known problems.

We strongly encourage developers to upgrade to this version of Mono and the C# compiler as the code generated between 1.1.18 and 1.2.1 would not have the proper activation semantics for variables captured by anonymous methods [Martin Baulig].

In addition, the merging of the MCS and GMCS compilers continued. The tokenizer is now shared, which only leaves the parser and the generics support as a difference between the two compilers [Marek Safar].


We continue to improve the ASP.NET 2.x implementation.

Support for registering controls from within Web.config (if that went into the release), several improvements to handling of App_Code and fixed support for in Web.config [Marek]


Our internal cairo implementation has been upgraded to version 1.2.6.


Improvements to 2.0 classes dealing with X.509 certificates [Sebastien].


mkbundle now can generate code that can be embedded into an application (in addition to generating standalone applications) [Joshua Tauberer].


Under the 2.0 profile, we now do lazy initialization of the Console, so the new code is only activated if the user actually needs some of the new features, reducing memory consumption, but also keeping the semantics of 2.0 compiled applications inline with Unix unless new features are requested (Gonzalo).

Visual Basic

Many improvements and bug fixes to the VB runtime, and it is now running IBuySpy, DevZone (Based on DotNetNuke)

The ASP.NET sites were tested with Grasshopper, as Mono does not yet have a complete VB compiler available to compile Visual Basic applications on the server.

Contributors to this Release

Anil Bhatia, Atsushi Enomoto, Vladimir Krasnov, Chris Toshok, Ben Maurer, Paolo Molaro, Sebastien Pouliot, Rolf Bjarne, Andreia Gaita, Marek Habersack, Gonzalo Paniagua, Lluis Sanchez, Dick Porter, Ankit Jain, Miguel de Icaza, Jonathan Pobst, Jonathan Chambers, Jackson Harper, Alexander Olk, Igor Zalmanovich, Klain Yoni, Raja Harinath, Nagappan, Everaldo Canuto, Mike Kestner, Gert Driesen, Konstantin Triger, Andrew Skiba, Mark Mason, Robert Jordan, Jonathan Pryor, Rafael Mizrahi, Wade Berrier, Zoltan Varga, Joshua Tauberer, Vladislav Spivak, Joe Shaw, Neale Ferguson, Carlos Cortes

Installing Mono 1.2.2

	$ ./configure --prefix=/devel

Binary Packages and Source Code Downloads:

Source code and pre-compiled packages for SUSE, SLES, Fedora Core 3, 4, Solaris, RHEL, MacOS and Windows in a variety of platforms available from our web site from the download section.

Quick source code installation:

If we have no packages for your platform, installing from source code is very simple.


    $ tar xzf mono-1.2.2.tar.gz
    $ cd mono-1.2.2
    $ ./configure
    $ make
    $ make install

Then compile libgdiplus:

    $ tar xzf libgdiplus-1.2.2.tar.gz
    $ cd libgdiplus-1.2.2
    $ ./configure
    $ make
    $ make install