April 4, 2012 at 10:40 PM
'mkbundle' is a utility that ships with Mono that allows you to embed the Mono runtime into your application so you are left with just a single executable file that doesn't require Mono to be installed on the target system. You can either embed just certain parts of Mono or the entire thing.
There are cases where you may want to know at runtime whether you are running as part of a bundle or not, thankfully this is extremely simple:
IsBundled = (typeof(int).Assembly.Location == "mscorlib.dll");
When the application is not bundled, the assembly location for the standard objects will be something like /usr/lib/mono/2.0/mscorlib.dll - but when it is bundled then it's just mscorlib.dll since that file is embedded in the current executable.