CARLOS LOTH
CARLOS LOTH

Reputation: 4745

Where is the .NET Framework Global Assembly Cache?

I installed the VS2010 and .NET 4.0, then I compiled an assembly and ran the gacutil using the exe available on

%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools

The output of the executable said the assembly was sucessfully installed on Global Assembly Cache. However, when I go to %WINDIR%\assembly folder I cannot find the assembly I installed using the .NET Framework 4.0 gacutil.

I've seen some posts saying the .NET Framework 4.0 has a separated GAC, but what I haven't found was where it is located.

May someone to help me to check where can I see the Global Assembly Cache of .NET Framework, as it used to work on previous version (%WINDIR%\assembly)?

Upvotes: 46

Views: 76262

Answers (3)

Dean P
Dean P

Reputation: 2225

Due to Common Language Runtime (CLR) changes, the contents of the Global Assembly Cache (GAC) is split between two directories:

  • %WINDIR%\assembly\
  • %WINDIR%\Microsoft.NET\assembly\

If you run the command gacutil -l from the directory of your project's .csproj file, you will get a printout of the contents of the GAC (the contents of both directories).

Upvotes: 0

Jay Riggs
Jay Riggs

Reputation: 53595

Try:

%windir%\Microsoft.NET\assembly\ 

Upvotes: 19

David Neale
David Neale

Reputation: 17018

Yes, there are two distinct GACs as from .NET 4.0

See here: .NET 4.0 has a new GAC, why?

As stated below, the new physical location is %windir%\Microsoft.NET\assembly\ (you can interogate it using the dir command at a command prompt if you're interested).

It's worth noting that applications running up to the 2.0 CLR will not even be able to see assemblies in the new GAC.

Upvotes: 47

Related Questions