Top 2 things you should know about the Global Assembly Cache (GAC) in .NET 4.0

The Global Assembly Cache underwent a few changes in .NET 4.0. On your first few days with .NET 4.0 you'll most likely encounter a few scenarios which work differently than they did in the previous versions of .NET Framework.

1) You use gacutil.exe to install a .NET 4.0 assembly to the GAC but cannot find the assembly in the GAC when you look under 'c:\<windows folder>\assembly' using Windows Explorer

In .NET 4.0 the GAC Location has changed, The .NET 4.0 GAC is now located under 'c:\<windows folder>\Microsoft.NET\assembly'. Previous versions of .NET Framework will continue to use 'c:\<windows folder>\assembly'. If you install a .NET 4.0 assembly into the GAC using gacutil.exe it will go under the new location.

2) You copied gacutil.exe supplied with .NET 4.0 SDK to a different location but it doesn't work as expected. gacutil.exe doesn't seem to install your assembly in the GAC only when run from this custom location, you've even checked the new .NET 4.0 GAC location.

gacutil.exe starting .NET 4.0 has a dependency gacutlrc.dll which you can find in the subfolder 1033 where gacutil.exe is located. You need to copy this assembly as well to your gacutil.exe location.

Copying gacutil.exe to your installer location, etc is discouraged. Aaron's got a nice blog post describing why this is bad.