GAC Directories Then and Now (CLR 2.0 vs 4.0)

A Split in GAC Storage Locations

With the introduction of the CLR 4.0 and .Net 4.0 a splitting of where GAC'd assemblies was introduced as well. This was apparently done to prevent any CLR 2.0 app from accidentally accessing a CLR 4.0 assembly and therefore crashing. Since the 2.0 and 3.5 framework share the same CLR 2.0, there's no need to separate those out AND since .Net 1.1 has not been included in Windows since before Windows 7, we'll forget that even existed for now.

That's just a quick overview, but if you want to learn more, check out a more in-depth MSDN article on the topic.

So Where are the Files in the GAC?

Well, you can't browse conventially to the < 4.0 GAC, the only way I've seen to get to the directory and actually grab some .dlls is to open the run command (Windows Key + R) and type in the full path to the diretory: %windir%\assembly\. That's opens a Window Explorer window at the directory and you can copy any files desired.

The .Net 4.0+ assemblies are accessible by simply browsing using Windows Explorer as you would any other folder to: %windir%\\assembly

I've found this quite interesting lately as I previously never really had to think about the GAC at all, but BizTalk has opened my eyes to it.