I'm trying to get started with Mono but I'm struggling with the documentation, blogs and other questions on SO. Hopefully this question will be useful for others.

I'd like to write a data ingestion process in C# using VS2013, since that's my native tongue, but I need to run it on a Linux box. There is no UI, its a console application.

Assuming Mono (but not MonoDevelop) is installed on the target Linux box, do I need to compile my .csproj differently for running under the Mono 'CLR' on Linux, and if so, how do I compile a project, as opposed to examples that compile a single .cs file?

Should I install MonoDevelop for Windows, open my solution/project in that IDE and compile it for Linux, copy the output files and run the .exe there?

Otherwise will the IL in an MSBuild-compiled .EXE assembly 'just work' on Linux under Mono, and will referenced assemblies be loaded okay (assuming they're all in the output folder)? Must I copy over any .NET Framework assemblies?