I keep forgetting exact GAC folders’ locations and whenever I try to Google this information it is always buried under some layers of misunderstanding and confused discussions. This steams from the fact that there are different locations depending on .NET version and bitness of your assemblies. So I’m just jotting down all the locations here for quick reference:
.NET 2.0 GAC: C:\Windows\assembly
.NET 4.0 GAC: C:\Windows\Microsoft.NET\assembly
Now each of this folder has the following sub-folders:
GAC_32 for 32-bit assemblies (defines word size)
GAC_64 for 64-bit assemblies (defines word size)
GAC_MSIL for assemblies that can be run in either 32-bit or 64-bit mode which are JIT compiled to the required word size as needed
On machines with x86/32-bit version of Windows (which is way too rare now, especially for Windows Server) there is only GAC_32 subfolder, and on x64 OS machines there are both GAC_32 and GAC_64 folders as 32-bit code is supported via emulation (WOW32).