To manually build your Netduino app on Mac/Linux, you can use the same build procedure used behind the scenes by the .NET Micro Framework SDK on Windows.
The build process has two steps: (1) compile; (2) shrink ("minimize").
To compile your Netduino app, you'll use the mcs.exe compiler (from Visual Studio or from Mono 2.12). The .NET MF compiler support was too new to make it into the upcoming Mono 2.10 release, so for the moment you'll need to install Mono 2.10 and then build the Mono 2.12 compiler from source.
We'll build the MonoBlinky app using Mono in the following example.
Step 1: compile MonoBlinky using Mono's new C# compiler (Mono 2.10 installed to default directory, Mono source in c:\mono)
C:\Downloads\MonoBlinky\> SET NETMF_LIB="C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Assemblies\le"
C:\Downloads\MonoBlinky\> SET NETDUINO_LIB="C:\Program Files (x86)\Secret Labs\Netduino SDK\Assemblies\v4.1\le"
C:\Downloads\MonoBlinky\> "c:\program files (x86)\mono-2.10\bin\mono.exe"
"c:\mono\mcs\mcs\mcs.exe" /reference:%NETMF_LIB%\Microsoft.SPOT.TinyCore.dll
/reference:%NETMF_LIB%\Microsoft.SPOT.Native.dll /reference:%NETMF_LIB%\mscorlib.dll
/reference:%NETMF_LIB%\Microsoft.SPOT.Hardware.dll /reference:%NETDUINO_LIB%\SecretLabs.NETMF.Hardware.dll
/reference:%NETDUINO_LIB%\SecretLabs.NETMF.Hardware.Netduino.dll /out:MonoNetduinoApp.exe
/target:exe /nostdlib Program.cs Properties\AssemblyInfo.cs
To compile a DLL, use /target:library and /out:assemblyname.dll instead.
You can also copy all the assemblies to your project's source code folder to avoid the extra path variables.
This will output your app as MonoNetduinoApp.exe, a traditional .NET assembly. Now we'll strip out extraneous data and convert it to the .NET MF "PE" assembly format.
Step 2: compress ("minimize") our app (assembly)
C:\Downloads\MonoBlinky\> SET NETMF_BIN="C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Tools"
C:\Downloads\MonoBlinky\> "%NETMF_BIN%\MetaDataProcessor.exe" -loadHints mscorlib "%NETMF_LIB%\mscorlib.dll"
-parse MonoNetduinoApp.exe -minimize -endian le -compile MonoNetduinoApp.pe
To run your Mono-compiled app, copy the resulting MonoNetduinoApp.pe file to a MicroSD card and insert it into your Netduino Plus (or use a shield on your Netduino or a MicroSD breakout board with your Netduino Mini). The MonoNetduinoBootloader app on your Netduino will then load the app automatically during powerup/restart.
Chris