GAC
Global Assembly Cache
view files
view folders
.NET development

How to view the Folder and Files in GAC?

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

The Global Assembly Cache, or GAC, is a machine-wide store for strongly named .NET Framework assemblies. You can browse it, but Windows exposes it through a special shell view that can make the underlying folder layout confusing. The practical answer depends on what you mean by "view": you might want the Explorer view, the real filesystem location, or a tool-based listing of installed assemblies.

Know Which .NET You Are Dealing With

The GAC is a .NET Framework concept. Modern .NET, such as .NET 5 and later, does not use the GAC in the same way.

So if you are working with a .NET Framework application, the GAC is relevant. If you are working with newer SDK-style .NET, you may be looking in the wrong place entirely.

View The GAC In Explorer

On .NET Framework systems, opening this path in Explorer often shows the shell-managed GAC view:

text
C:\Windows\assembly

That special view presents assemblies in a user-friendly way rather than exposing the raw directory tree directly.

If your goal is simply to see which assemblies are there, this can be enough.

View The Underlying Folder Structure

If you want the actual folders, use the real filesystem path instead.

text
C:\Windows\Microsoft.NET\assembly

This location typically contains directories such as:

  • 'GAC_32'
  • 'GAC_64'
  • 'GAC_MSIL'
  • 'NativeImages_*'

These folders reflect architecture and runtime layout rather than the simplified Explorer shell view.

Use Command Line To Inspect Contents

Command-line tools are often clearer when you want a raw listing.

In Command Prompt:

cmd
cd C:\Windows\Microsoft.NET\assembly
dir

To search recursively:

cmd
dir /s System.Data.dll

In PowerShell:

powershell
Get-ChildItem "C:\Windows\Microsoft.NET\assembly" -Recurse

This gives you the actual files and subdirectories instead of the shell abstraction.

Use gacutil For Assembly Listings

If the .NET Framework SDK tools are installed, gacutil can list assemblies in the GAC.

cmd
gacutil -l

To filter for a specific assembly:

cmd
gacutil -l System.Xml

This is often the most useful answer when you care about installed assembly identities rather than folder names.

Why The GAC Looks Strange In Explorer

The GAC was designed for assembly identity and version management, not for casual file browsing. Windows therefore exposes it through a shell extension that groups assemblies by display identity instead of showing a plain directory list at first glance.

That is why many developers think the GAC is "hidden" or "virtual" when in reality the files do exist on disk, just behind a special Explorer presentation.

Common Pitfalls

The most common mistake is looking in the GAC for a .NET 5 or later application. Those runtimes do not rely on the classic GAC model.

Another issue is confusing C:\Windows\assembly with the underlying physical directories. The shell view and the file layout are related, but they are not the same browsing experience.

It is also easy to assume that copying files manually into these folders is a normal management technique. It is not. Assembly installation and removal should be done with the proper tools and deployment mechanisms.

Finally, remember that administrative permissions and SDK tools may affect what commands are available on a given machine.

Summary

  • The GAC is mainly relevant to .NET Framework, not modern .NET in general.
  • 'C:\Windows\assembly shows the shell view of the GAC.'
  • 'C:\Windows\Microsoft.NET\assembly exposes the underlying folder layout.'
  • Use dir, PowerShell, or gacutil -l when you want raw listings or assembly identities.
  • Do not confuse viewing the GAC with manually managing assemblies inside it.

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.