2014-08-13 10:39:27 +01:00
|
|
|
<h2>Assemblies</h2>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<p>Code in .NET and Mono is distributed in assemblies, there
|
|
|
|
are shipped typically in files with the extension .exe or
|
|
|
|
.dll, and they are files that extend
|
|
|
|
the <a href="https://en.wikipedia.org/wiki/Portable_Executable">Portable
|
|
|
|
Executable</a> file format to include the Common Intermediate
|
|
|
|
Language metadata and portable code.
|
|
|
|
|
|
|
|
<p>Assemblies are typically loaded either from a given file
|
|
|
|
path, or using an <a href="#assembly-name">Assembly Name</a>
|
|
|
|
to load them from the Global Assembly Cache.
|
|
|
|
|
|
|
|
<p>The Mono Assembly API contains method for dealing with
|
|
|
|
<a href="#assembly-name">assembly
|
|
|
|
names</a>, <a href="cil_assembly_load">loading assemblies</a>,
|
|
|
|
<a href="#working">accessing assembly
|
|
|
|
components</a>, <a href="#modules">modules</a> and
|
|
|
|
some <a href="#advanced">advanced</a> features.
|
|
|
|
|
|
|
|
<p>Assemblies contain one or
|
|
|
|
more images, the actual vessels for your code.
|
|
|
|
The <a href="mono-api-image.html">Image API</a> documents the
|
|
|
|
functions that operate on <code>MonoImage *</code>.
|
|
|
|
|
2014-08-13 10:39:27 +01:00
|
|
|
<h3>Synopsis</h3>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<div class="mapi-header">
|
2014-08-13 10:39:27 +01:00
|
|
|
#include <metadata/assembly.h>
|
|
|
|
|
|
|
|
typedef struct _MonoImage MonoImage;
|
|
|
|
typedef struct _MonoAssembly MonoAssembly;
|
|
|
|
</div>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<a name="cil_assembly_load"/></a>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h3>Assembly Loading</h3>
|
|
|
|
|
|
|
|
<h4><a name="api:mono_assembly_close">mono_assembly_close</a></h4>
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_get_object">mono_assembly_get_object</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h4><a name="api:mono_assembly_load">mono_assembly_load</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_full">mono_assembly_load_full</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_loaded">mono_assembly_loaded</a></h4>
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_load_from">mono_assembly_load_from</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_from_full">mono_assembly_load_from_full</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_with_partial_name">mono_assembly_load_with_partial_name</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_open">mono_assembly_open</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_open_full">mono_assembly_open_full</a></h4>
|
|
|
|
<h4><a name="api:mono_set_assemblies_path">mono_set_assemblies_path</a></h4>
|
|
|
|
<h4><a name="api:mono_set_rootdir">mono_set_rootdir</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<a name="working"/>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h3>Working with Assemblies</h3>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_fill_assembly_name">mono_assembly_fill_assembly_name</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_foreach">mono_assembly_foreach</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h4><a name="api:mono_assembly_get_image">mono_assembly_get_image</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_get_main">mono_assembly_get_main</a></h4>
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_get_name">mono_assembly_get_name</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h4><a name="api:mono_assembly_getrootdir">mono_assembly_getrootdir</a></h4>
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_get_assemblyref">mono_assembly_get_assemblyref</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_loaded_full">mono_assembly_loaded_full</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_reference">mono_assembly_load_reference</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_references">mono_assembly_load_references</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_load_module">mono_assembly_load_module</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_invoke_load_hook">mono_assembly_invoke_load_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_invoke_search_hook">mono_assembly_invoke_search_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_set_main">mono_assembly_set_main</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_setrootdir">mono_assembly_setrootdir</a></h4>
|
|
|
|
<h4><a name="api:mono_register_config_for_assembly">mono_register_config_for_assembly</a></h4>
|
|
|
|
<h4><a name="api:mono_register_symfile_for_assembly">mono_register_symfile_for_assembly</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<a name="assembly-name"></a>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h3>Assembly Names</h3>
|
|
|
|
|
|
|
|
<p>The MonoAssemblyName contains the full identity of an
|
|
|
|
assembly (name, culture, public key, public key token,
|
|
|
|
version and any other flags).
|
|
|
|
|
|
|
|
<p>These unmanaged objects represent the <a
|
|
|
|
href="http://www.mono-project.com/monodoc/T:System.Reflection.AssemblyName">System.Reflection.AssemblyName</a>
|
|
|
|
managed type.
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<h4><a name="api:mono_assembly_name_new">mono_assembly_name_new</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_name_get_name">mono_assembly_name_get_name</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_name_get_culture">mono_assembly_name_get_culture</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_name_get_version">mono_assembly_name_get_version</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_name_get_pubkeytoken">mono_assembly_name_get_pubkeytoken</a></h4>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h4><a name="api:mono_assembly_name_free">mono_assembly_name_free</a></h4>
|
|
|
|
<h4><a name="api:mono_stringify_assembly_name">mono_stringify_assembly_name</a></h4>
|
|
|
|
<h4><a name="api:mono_assembly_names_equal">mono_assembly_names_equal</a></h4>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
<a href="modules"/>
|
2014-08-13 10:39:27 +01:00
|
|
|
<h3>Modules</h3>
|
|
|
|
|
|
|
|
<p>An assembly is made up of one or more modules.
|
|
|
|
|
|
|
|
<h4><a name="api:mono_module_file_get_object">mono_module_file_get_object</a></h4>
|
|
|
|
<h4><a name="api:mono_module_get_object">mono_module_get_object</a></h4>
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
|
|
|
|
<a href="advanced"/>
|
|
|
|
<h3>Advanced</h3>
|
|
|
|
|
|
|
|
<h4><a name="api:mono_install_assembly_load_hook">mono_install_assembly_load_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_search_hook">mono_install_assembly_search_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_refonly_search_hook">mono_install_assembly_refonly_search_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_preload_hook">mono_install_assembly_preload_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_refonly_preload_hook">mono_install_assembly_refonly_preload_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_postload_search_hook">mono_install_assembly_postload_search_hook</a></h4>
|
|
|
|
<h4><a name="api:mono_install_assembly_postload_refonly_search_hook">mono_install_assembly_postload_refonly_search_hook</a></h4>
|