Skip to main content

Posts

Showing posts with the label DLL Hell

All About 'Asemblies' & 'Global Assembly Cache (GAC)'

Assembly: An Assembly is a logical unit of code. Assembly physically exists as DLLs or EXEs. One assembly can contain one or more files. When you compile your source code, by default the exe/dll generated is actually an assembly. Unless your code is bundled as assembly it cannot be used in any other application. Every assembly file contains information about itself. This information is called as Assembly Manifest. The assembly which is used only by a single application is called as private assembly. In order to run the application properly your DLL must reside in the same folder in which the client application is installed. Thus the assembly is private to your application. Suppose that you are creating a general purpose DLL which provides functionality which will be used by variety of applications. Now, instead of each client application having its own copy of DLL you can place the DLL in ‘global assembly cache’. Such assemblies are called as shared assemblies. If an a...

'DLL Hell'

DLL HELL: Dll stands for Dynamic Link Library Legacy software installations in the past were developed in a variety of ways. Setup developers designed their install programs to concentrate on their own products which often impacted on programs that were already installed on the PC. With legacy installations in the past, there might be two applications using the same file, but one might be designed to run on an older version. This led to "DLL hell" where the installation/uninstallation of one application would cause other applications to stop working. In simple words :  For instance there is an application (A) with the dll version 1.0 which is already installed on the machine, there is another application (B) with the same dll name but different version, let us take it as 2.0. When the application B is installed on the system which has App A installed, it overwrites the dll file to version 2.0 and if the app B is uninstalled the Dll also gets uninstalled, hence fail...