Take the 2-minute tour ×

When .NET needs to load an assembly, what is the folder hierarchy that it uses to search for the assembly? I assume it starts with the GAC, and then local folder of the executing assembly? What is the complete hierarchy? I know the Windows search path (for unmanaged code) is something like local folder/System32 folder/search path/etc. and I am looking for something similar for .NET.

share|improve this question

3 Answers 3

up vote 4 down vote accepted

If you were looking for a description of the process rather than links to lengthy MSDN articles, this is a brief summary of the steps. You can find more details here.

Steps the runtime follows to resolve an assembly reference:

  1. Determines the correct assembly version by examining applicable configuration files.
  3. Checks the GAC.
  4. Probes for the assembly by following these steps:


    b) If a codebase is found in the configuration files, the runtime checks only this location.


share|improve this answer

Look at this article How the runtime locates assemblies.

It's actually not a linear path, and it depends on a lot (is the assembly loaded already, configuration files, ...) but the article is very clear.

share|improve this answer

Your Answer


