Rule #1: Never, ever, ever
use the \ to seperate directories when doing any file I/O. Instead, use the System.IO.Path.DirectorySeparatorChar constant.
This translates directly over to the *nix world and makes for a smooth transition
in Mono.
Rule #2: Just as most of us have learned case sensitivity
in .NET, carry this forward to your file I/O operations, again, and make sure all
files and directories are case sensitive.
Rule #3: Make sure you don't compile your assemblies
with the /incremental flag. Mono can't support incremental compilation. For
more details on what "incremental compilation". [Jason
Alexander]