Back to results for “.NET vs .NET Framework”
.NET › Assemblies & NuGet

What is the Global Assembly Cache (GAC), and is it still relevant in modern .NET?

Intermediate

Answer

The GAC was a machine-wide repository in .NET Framework for storing strongly-named shared assemblies, letting multiple applications reference one common copy instead of each having a private copy. Modern .NET has no GAC equivalent -- it exclusively uses local, per-application NuGet package references and a local package cache, reflecting the shift toward isolated, side-by-side, self-contained dependency management rather than machine-wide shared assemblies.
// .NET Framework (legacy):
gacutil /i MyAssembly.dll  // installs into machine-wide GAC

// Modern .NET: no GAC -- dependencies resolved from
// the local NuGet package cache (~/.nuget/packages) per-project
Real-world example A team migrating from .NET Framework removes all GAC-installation deployment scripts entirely, since modern .NET's per-application dependency model has no equivalent concept requiring machine-wide assembly registration.

Common follow-ups: Why did Microsoft remove the GAC concept from modern .NET?;What replaced GAC's shared-assembly benefit in containerized deployments?