man mono-config (Formats) - Mono runtime file format configuration
NAME
mono-config - Mono runtime file format configuration
DESCRIPTION
The Mono runtime will load configuration data from the installation prefix /etc/mono/config file, the ~/.mono/config or from the file pointed by the MONO_CONFIG environment variable.
For each assembly loaded a config file with the name: /path/to/the/assembly.exe.config is loaded, too.
This file controls the behavior of the runtime.
The file contains an XML-like file with various sections, all of them contained inside a section (It actually uses GMarkup to parse the file).
<dllmap> directive
You use the dllmap directive to map shared libraries referenced by P/Invoke in your assemblies to a different shared library.
This is typically used to map Windows libraries to Unix library names. The dllmap element takes two attributes:
- dll
- This should be the same string used in the DllImport attribute
- target
- This should be the name of the library where the function can be found: this name should be suitable for use with the platform native shared library loading routines (dlopen etc.), so you may want to check the manpages for that, too.
<dllentry> directive
This directive can be used to map a specific dll/function pair to a different library and also a different function name. It should appear inside a dllmap element with only the dll attribute specified.
The dllentry element takes 3 attributes:
- dll
- This is the target library, where the function can be found.
- name
- This is the name of the fuction as it appears in the metadata: it is the name of the P/Invoke method.
- target
- This is the name of the function to lookup instead of the name specified in the P/Invoke method.
EXAMPLES
The following example maps references to the `cygwin1.dll' shared library to the `libc.so.6' file.
<configuration> <dllmap dll="cygwin1.dll" target="libc.so.6"/> </configuration>
This one maps the following C# method:
[DllImport ("libc")] static extern void somefunction ();to differentfunction in libdifferent.so.
<configuration> <dllmap dll="libc"> <dllentry dll="libdifferent.so" name="somefunction" target="differentfunction" /> </dllmap> </configuration>