Dll hell problem and solution
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
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.
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.
verification, to be
Providing Role, to
provide power ,step after authentication in role.
see the parts of an assembly:
open cmd prompt of Visual
studio and write - ILDASM
ILDASM: is a tool to see the content (metadata)
in my next post i'll explain about HTML5 Audio and Video