Resolving and Loading Assemblies
At the point that the CLR first needs to access the metadata for a type (e.g., when JIT-ing methods that use the type), it must first locate and load the assembly containing the type. The process of determining exactly which assembly to load is called “resolving,” and is performed by the assembly resolver. Once the assembly resolver has determined which physical file to load, the assembly loader is responsible for loading it into memory.
The assembly resolver performs a relatively complex set of operations, controlled by application and machine-level configuration files. These configuration files can tell the resolver to bind to a different version of the assembly than specified in the assembly reference, and can give the resolver hints about where to look for the physical file the loader should load (either at a URI endpoint, or in subdirectories under the application directory).
Once the resolver has identified which file to load and has verified that the name, version, culture, and originator information in the assembly manifest in the located file matches what the resolver is expecting, it hands off to the loader, which physically loads and verifies the file.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access