How to Locate Assembly in GAC

Here is a simple step by step process of how to locate an assembly in GAC if you want to take a copy of it, or maybe add an additional debug information .pdb-file for remote debugging purposes.

  • open command prompt
  • change the current folder to c:\windows\assembly (%SystemRoot%\assembly)
  • navigate to GAC_MSIL folder – that is where most of the time you will find the assembly
    (the list of all other folders in Assembly, with explanation for some of them, is below)
  • find the folder name with your assembly name without extension and navigate to it
  • additionally navigate down one more folder with the version information, and your assembly should be in that folder

Structure of Assembly folder

Here are examples of what you might see in Assembly folder on different computers:

 Windows XP 32-bit workstation:
– GAC_32
– NativeImages1_v1.1.4322
– NativeImages_v2.0.50727_32
– temp
– tmp

Windows Server 2008 64-bit server:
– GAC_32
– GAC_64
– NativeImages_v2.0.50727_32
– NativeImages_v2.0.50727_64
– temp
– tmp

  • NativeImages… – folders used for native images, which are typically compiled by ngen.exe.
  • tmp folder used for installation assemblies to GAC
  • temp folder is for uninstallation from GAC

Here are some ‘under the hood’ details on GAC Temp and Tmp folders and Install and Uninstall of assemblies.

Opening GAC assemblies with .NET Reflector 

If you are using .NET Reflector there are two things you can do to look what’s inside that assembly from GAC:

  1. make a copy of your assembly from GAC folder to a local folder (the steps explained above) and open the assembly from that local folder
  2. edit your reflector settings file: reflector.cfg, and add the following GAC paths there, then you should be able to open assembly right from open menu:


Leave a Reply

Your email address will not be published. Required fields are marked *