>Also, just for kicks, try compiling your code
>with monoc. The resulting assemblies might be more... agnostic.
I did forget to mention this. If you are building a solution with
visual studio, it is a good idea to recompile the solution with the mono
compiler. The way build numbers are used in visual studio sometimes
messes up the mono runtime, and compiling on mono eliminates this issue.
This also demonstrates one of the real strengths of .NET / Mono. It is
fun to write an application in C# on either Linux or windows, and
compile it, then copy the executable over and run it on the other
platform. Or just copy the source code over and compile it on the other
platform, and then copy it back and run it. Or any other combination
you choose.
This isn't limited to Web applications either. Command line based
applications work the same way. Applications using the Windows.Forms
library will run, although you may run into problems, I'm not sure.
Mono was depending on wine to correctly display the windows.forms
controls, but now they are implementing a completely managed
implementation. The gtk bindings (GTK#) runs on Windows, Linux, and Mac
OSX. So now you can write applications that run on all three platforms
*without* recompiling.
But what about dependencies?
In both the .Net framework and the Mono Framework, any custom libraries
you depend on can either be loaded into the GAC (Global Assembly Cache)
or merely reside in the same directory as the executable. Or any other
predefined location. Come to think of it, you could probably define
this location at runtime using Reflection...
But now I've wandered a bit from the originally reply (Sorry Jason).
Josh