Starting our application on a client's machine where mono is not installed works. But the application fails to start, with the following error, on the same machine if mono is installed
Unhandled Exception: System.TypeInitializationException: The type initializer for 'GLib.Marshaller' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.EntryPointNotFoundException: SystemNative_LChflagsCanSetHiddenFlag assembly: type: member:(null)
The mkbundle command used to create the application
mkbundle -v -o appname --simple --keeptemp appname.exe --config ./config --machine-config /etc/mono/4.5/machine.config
config is copied from /etc/mono and modified to remove location specific informations.
What seems to happen is the application loads the installed mono instance which is a different version than the one packaged with the application and fails to find a symbol.
Is there a way to prevent mkbundled app from loading the installed mono and instead always rely on the bundled version?