## Assemblies

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 Portable Executable file format to include the Common Intermediate Language metadata and portable code.

Assemblies are typically loaded either from a given file path, or using an Assembly Name to load them from the Global Assembly Cache.

The Mono Assembly API contains method for dealing with assembly names, loading assemblies, accessing assembly components, modules and some advanced features.

Assemblies contain one or more images, the actual vessels for your code. The Image API documents the functions that operate on `MonoImage *`.

### Synopsis

#include <metadata/assembly.h> typedef struct _MonoImage MonoImage; typedef struct _MonoAssembly MonoAssembly;

### Assembly Loading

#### mono_assembly_close

#### mono_assembly_get_object

#### mono_assembly_load

#### mono_assembly_load_full

#### mono_assembly_loaded

#### mono_assembly_load_from

#### mono_assembly_load_from_full

#### mono_assembly_load_with_partial_name

#### mono_assembly_open

#### mono_assembly_open_full

#### mono_set_assemblies_path

#### mono_set_rootdir

### Working with Assemblies

#### mono_assembly_fill_assembly_name

#### mono_assembly_foreach

#### mono_assembly_get_image

#### mono_assembly_get_main

#### mono_assembly_get_name

#### mono_assembly_getrootdir

#### mono_assembly_get_assemblyref

#### mono_assembly_loaded_full

#### mono_assembly_load_reference

#### mono_assembly_load_references

#### mono_assembly_load_module

#### mono_assembly_invoke_load_hook

#### mono_assembly_invoke_search_hook

#### mono_assembly_set_main

#### mono_assembly_setrootdir

#### mono_register_config_for_assembly

#### mono_register_symfile_for_assembly

### Assembly Names

The MonoAssemblyName contains the full identity of an assembly (name, culture, public key, public key token, version and any other flags).

These unmanaged objects represent the System.Reflection.AssemblyName managed type.

#### mono_assembly_name_new

#### mono_assembly_name_get_name

#### mono_assembly_name_get_culture

#### mono_assembly_name_get_version

#### mono_assembly_name_get_pubkeytoken

#### mono_assembly_name_free

#### mono_stringify_assembly_name

#### mono_assembly_names_equal

### Modules

An assembly is made up of one or more modules.

#### mono_module_file_get_object

#### mono_module_get_object

### Advanced

#### mono_install_assembly_load_hook

#### mono_install_assembly_search_hook

#### mono_install_assembly_refonly_search_hook

#### mono_install_assembly_preload_hook

#### mono_install_assembly_refonly_preload_hook

#### mono_install_assembly_postload_search_hook

#### mono_install_assembly_postload_refonly_search_hook