This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!
Overview of Locating Assemblies
This document describes how the NGWS runtime locates assemblies when they are referenced at runtime. The process of finding and loading an assembly begins with a reference to that assembly. We call this an AssemblyRef. An AssemblyRef contains the text name, version, culture and an optional Originatorthat identify the assembly.
Given an AssemblyRef, the process of binding to that assembly is influenced by:
- The ApplicationBase (or AppBase) – the root directory in which the application making the reference is located. For executables, this is the directory containing the exe. For web apps, the AppBase is the root directory of the application as defined by the web server.
- Whether the reference is to an assembly with a shared name vs. a private name. (See the Assembly Overview for the distinction between shared and private assemblies).
- Version policies specified in the application configuration file, including safe mode.
- Any codebase locations provided in the application configuration file.
- Any QFE updates to the assembly that are present in the application directory of in the global assembly cache.
- The administrator’s version policies.
The following picture shows the steps taken to locate an assembly. The details of each step are described in the following sections.
