This post is a more of a reminder for
myself as I have to do this every few months and I end up googleing
it every time, because I don't remember what exactly needs to be
done.
The problem:
How to get your
hands on the DLL (as a file) that is stored in GAC.
The solution:
When you go to Windows\assembly
directory you will see something like the screen below.

The above Shel extenstion is great for
quickly checking which versions of GACed DLLs are installed on the
machine.
The problem
arises when you want to copy the DLL itself (as a file). In this
shell extension (Assembly
Cache Viewer (SHFusion.dll) you're not allowed to do that. You
may wonder why would you want to copy those DLLs in the first place.
Well, for example when you want to install the DLL on the machine and
the only copy of the DLL you've got is in GAC.
Ok, enough foreplay. Here's the actual
solution:
For first time on each machine add key:
DisableCacheViewer in
HKLM\Software\Microsoft\Fusion
Set the DWORD
value to 1.
Now if you go to
the assembly directory you'll see the following screen.
For all future
usage, simply toggle the registry value.
NOTE: There are
other ways of doing this, such as disabling SHFusion via command
line, but I find this one the easiest.