Introduction
"Computer wherein the common language runtime CLR is installed has a machine-wide code cache called the Global Assembly Cache. This Global Assembly Cache stores .NET assemblies specifically designated to be shared by several applications on that computer".
Background
I faced problem where I am using a DLL in my project but by mistake got deleted, there is no source code for it to build it again and then use it, but however the assembly installed in the GAC is available. For Ex: Consider that Scheduler.dll got deleted from your project by mistake .., but is available in the GAC. As we cannot copy the DLL from GAC, and also cannot drag and drop as we do while installing. Follow the below explanation to copy the DLL from the GAC.
Explanation
The default location of the GAC is under the <%Windir% >\assembly folder. The following screen shots displays a MS DOS Command Window wherein various commands have been executed at the prompt to copy the DLL from GAC. Go to command prompt path: C:\WINDOWS\assembly
The DIR Command displays four separate directories which are briefly described here
Now Inside the GAC_MSIL progressively drilling through this hierarchy of folders reveals the organization of the GAC and how it implements Side-By-Side installation Below screen shot shows the Scheduler.dll
Within each folder for a shared assembly, there is a sub folder named using the version and public key token components of the assembly
e.g. 1.0.0.0__b12b4b980378177c shown in above screen) Within this sub folder resides the actual assembly that is installed into the GAC. DisplayName, Version, Culture and PublicKeyToken are the components that uniquely identify the assembly.
Inside 1.0.0.0__b12b4b980378177c folder you can see Scheduler.dll
Now you can execute the COPY command to copy the dll from GAC to local system drive.
I hope the content presented in this document is useful.
NOTE: Additionally, using MS DOS commands to alter or delete these internal folders or contents of files therein may lead to unpredictable behavior or other serious problems that may require you to reinstall the .NET Framework on the affected machine(s). Use such commands at your own risk.