What is “DLL Hell”?
dependency hell
Why it occurs?
Sharing code in a wrong way
incorrect registration: all applications share one registration entry
incorrect memory sharing: only one instance loaded considering nothing about versions
How it is solved?
versioning
reference:
http://en.wikipedia.org/wiki/DLL_hell (explain DLL hell at a high level)
http://msdn.microsoft.com/en-us/library/ms973843.aspx(with detail tips - Simplifying Deployment and Solving DLL Hell with the .NET Framework)
what is “strong name” in .NET?
A strong name is a .NET assembly name combined with its version number and other information to uniquely identify the assembly. This allows multiple versions of the same assembly to peacefully co-exist in the global assembly cache, where shared assemblies are typically stored.
Another reason to use strong names is to make it difficult for hackers to spoof your assembly, in other words, replace or inject your assembly with a virus or malicious code.
http://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/(about strong name)