The process of locating an assembly begins when the NGWS runtime class loader is asked to resolve a reference to another assembly. This reference may be static or dynamic. Static references are recorded in metadata at build time by the compiler. Specifically, a Typeref with a resolution scope that is an AssemblyRef is a static reference to an assembly. Dynamic references are constructed “on the fly” as a result of calling various API’s such as System.Reflection.Assembly.Load. For example:
Assembly a = Assembly.Load("myDll, Ver=5.5.5.5, PK=92735c03372ac342");
In either case, the reference contains the name, version, culture and originator of the desired assembly as describe above. The loader passes this information to the AssemblyResolver, which locates the assembly following the steps described in the following sections. There is no difference in the resolution process based on whether the AssemblyRef was static or dynamic.