1. Building Avro for .NET

a. Windows

Prerequisites
    Microsoft Visual C# Express 2010

To build open Avro.sln solution in VC# Express 2010 and build from there.

b. Linux

Prerequisites
    Mono 2.6 or above.
    
For Ubuntu Lucid Lynx, mono that comes with it is 2.4. To install mono 2.6
follow the procedure described at http://badgerports.org/

To build issue the command:
$ cd lang/csharp

then

$ CONFIGURATION=Release TARGETFRAMEWORKVERSION=3.5 xbuild Avro.sln

or 

$ CONFIGURATION=Debug TARGETFRAMEWORKVERSION=3.5 xbuild Avro.sln

Note: In Ubuntu 12.04 (Precise Pangolin), please omit TARGETFRAMEWORKVERSION argument and leave it to the default.

2. Unit tests

This is a common procedure for both Windows and Linux.

To run unit-tests, please install NUnit 2.5 or above. From within the NUnit
GUI, open the project Avro.nunit and run the tests.

3. Notes

a. The LICENSE and NOTICE files in the lang/csharp source directory are used to build the binary distribution. The LICENSE and NOTICE information for the Avro C# source distribution is in the root directory.
