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>

SEE ALSO