.NET Framework 4.0 New GAC Locations

This is what I observed today;
There are now 2 distinct GAC locations that you have to manage as of the .NET 4.0 Framework release.
The GAC was split into two based on each CLR (2.0, 3.5 AND 4.0). The CLR version used for both .NET Framework 2.0 and .NET Framework 3.5 is CLR 2.0.

To avoid issues between CLR 2.0 and CLR 4.0, the GAC is now split into private GAC’s for each runtime. The main change is that CLR v2.0 applications now cannot see CLR v4.0 assemblies in the GAC..:-)

In previous .NET versions, when I installed a .NET assembly into the GAC (using gacutil.exe or even drag and drop to the c:\windows\assembly or Run assembly directory), I could find it .With .NET 4.0, GAC is now located in the ‘C:\Windows\Microsoft.NET\assembly’ path.

In order to install a dll to the .NET 4.0 GAC it is necessary to use the gacutil found C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\GacUtil.exe In addition, you can no longer use the drag n’ drop (in reality the drag n’ drop really executed the gacutil via a windows explorer extension).unfortunately there is no Windows explorer console available for .Net 4.0..:-(

After you use the gacutil.exe -i {path to dll} you can view that it is indeed in the gac via gacutil -l (which will list all dlls in the gac). I used this command and piped the results to a text file via > out.txt which made it easier to find the recently added component.

Now one more point to remember

For CLR v2.0, you can use C:\Windows\assembly\GAC_MSIL and see the folder representation of the registered assemblies similarly for CLR V4.0 you can use C:\Windows\Microsoft.NET\assembly\GAC_MSIL and see the folders represent the registered assemblies.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s