Dll Hell refers to a set of problems caused when multiple
applications attempt to share a common component like a
dynamic link library (DLL).
.Net Framework provides operating systems with a Global
Assembly Cache. This Cache is a repository for all the .Net
components that are shared globally on a particular
machine. When a .Net component is installed onto the
machine, the Global Assembly Cache looks at its version,
its public key, and its language information and creates a
strong name for the component. The component is then
registered in the repository and indexed by its strong
name, so there is no confusion between different versions
of the same component, or DLL.