In this blog, I’m explaining about DLL hell problem and solution in .Net
DLL hell refers to a set of problems caused when multiple application attempt to share a common component like a dynamic link library (DLL). The reason for this issue was that the version information about the different components of an application was not recorded by the system.
Solution of DLL-hell Problem
This problem of dynamic link library (.dll) is resolved through Versioning.
Versioning is the technique to provide version to the .dll to prevent them from replacement.
GAC (Global assembly cache) is the separate memory like cache it is used to remove load from operating System.
Note-Versioning is not applicable to private assemblies as these assemblies reside in their individual folders. Versioning can be applied to GAC only.
Strong is similar to GUID (it is supposed to be unique in space and time). Strong name is only needed when we need to deploy assembly in GAC. Strong name help GAC to differentiate between two versions.
A strong name contains the assembly's identity i.e. Its text name, version number, and culture information strengthened by a public key and a digital signature generated over the assembly. This is because the CLR verifies the strong name signature when the assembly is placed in the Global Assembly Cache.