This does not really stop you from doing this. In particular, for .NET 4.0, you can use the Browse tab to access c: \ windows \ microsoft.net \ assembly. A shell extension handler that stops you from accessing GAC.NET 2.0 through shell dialogs is not included in 4.0
But yes, this is a really bad idea. The GAC is detailed deployment information; you cannot assume that the contents of your GAC will match those on another computer. Only a reference build can give you a stable set of type definitions that don't change when, say, you get a security update through Windows Update.
This is even more relevant for .NET 4.0. Its referenced assemblies are special. They are no longer a copy of the assemblies that you can find in the GAC or in c: \ windows \ microsoft.net. They contain only metadata, not IL. This allows Microsoft to deploy updates that change public types in assemblies. Something bad in .NET 2.0 packages (e.g. WaitHandle.WaitOne (int)).
source share