How to view the Folder and Files in GAC?
.Net.Net AssemblyGac.Net Problem Overview
.Net Solutions
Solution 1 - .Net
Install:
gacutil -i "path_to_the_assembly"
View:
Open in Windows Explorer folder
- .NET 1.0 - NET 3.5:
c:\windows\assembly
(%systemroot%\assembly
) - .NET 4.x:
%windir%\Microsoft.NET\assembly
OR gacutil –l
When you are going to install an assembly you have to specify where gacutil
can find it, so you have to provide a full path as well. But when an assembly already is in GAC - gacutil
know a folder path so it just need an assembly name.
MSDN:
Solution 2 - .Net
I'm a day late and a dollar short on this one. If you want to view the folder structure of the GAC in Windows Explorer, you can do this by using the registry:
- Launch regedit.
- Navigate to HKLM\Software\Microsoft\Fusion
- Add a DWORD called DisableCacheViewer and set the value to 1.
For a temporary view, you can substitute a drive for the folder path, which strips away the special directory properties.
- Launch a Command Prompt at your account's privilege level.
- If you elevate your privileges, you might not see the drive in Windows 7.
- Type SUBST Z: C:\Windows\assembly
- Z can be any free drive letter.
- Open My Computer and look in the new substitute directory.
- To remove the virtual drive from Command Prompt, type SUBST Z: /D
As for why you'd want to do something like this, I've used this trick to compare GAC'd DLLs between different machines to make sure they're truly the same.
Solution 3 - .Net
Launch the program "Run" (Windows Vista/7/8: type it in the start menu search bar) and type:
C:\windows\assembly\GAC_MSIL
Then move to the parent folder (Windows Vista/7/8: by clicking on it in the explorer bar) to see all the GAC files in a normal explorer window. You can now copy, add and remove files as everywhere else.
Solution 4 - .Net
To view the files just browse them from the command prompt (cmd
), eg.:
c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir
To add and remove files from the GAC use the tool gacutil
Solution 5 - .Net
You install as assemblies by using:
- A setup program, that you author for your application.
- Using the
gacutil.exe
tool with the-i
option from the command line. - Dropping the assembly in
%windir%\Assembly
(only up to .NET 3.5, CLR 2.0)
You view the content of the GAC using:
- The
gacutil.exe
tool with the-l
option. - For .NET 2.0, 3.0 and 3.5 (CLR 2.0) browsing to
%windir%\assembly
using the Windows Explorer.
Note that the (physical) GAC location has changed for .NET 4.0. It is no longer in %windir%\Assembly
, but now in %windir%\Microsoft.NET\assembly
. However, you should never write any code that depends on the physical location anyway, because given the tools available that is hardly necessary (some "cool" homegrown system diagnostics tools aside).