Hi everyone in this blog I’m explaining about dll hell problem and solution.
Before some time, if we install an application then dll of that application get stored in the registry, then if we install other application that has same name .dll that means previously installed .dll get overwrite by the same name new .dll. Ok for newly installed application but previously installed application cant get execute further. This is big problem in context of version of same application. This is Dell-Hell problem.
Introduction of dll hell:
Once I’ve got a task to solve the problem with the DLL updates. Some company supplied users with DLLs that contained classes that developers used in their C++ applications. In other words, it was some kind of a SDK in the DLL. There were no restrictions on how to use these classes, so developers derived from them while creating their applications. Soon they realized that their applications started to crash after the DLL updates. Developers were required to rebuild their applications to get versions that can work with the new DLL.
Further I will provide you with my research results on this problem, with the information I have gathered from the external sources and finally I will give my solution for one of the ‘DLL Hell’ problems.
Solution of Dll-Hell problem:
This problem of dynamic link library (.dll) is resolved through Versioning. .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.
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 form operating system.
We can do versioning only with shared assembly because to install .dll in GAC so we need to have strong key name.
Authentication: verification, to be verify.
Authorization: Providing Role, to provide power ,step after authentication in role.
To see the parts of an assembly:
open cmd prompt of Visual studio and write - ILDASM
ILDASM: is a tool to see the content (metadata) of Assembly.
in my next post i'll explain about HTML5 Audio and Video Player