GAC (Global Assembly Cache) is used where shared .NET assembly reside. GAC is used in the following situations :-
. If the application has to be shared among several application.
. If the assembly has some special security requirements like only administrators can remove the assembly. If the assembly is private then a simple delete of assembly the assembly file will remove the assembly.
Note :- Registering .NET assembly in GAC can lead to the old problem of DLL hell, where COM version was stored in central registry. So GAC should be used when absolutely necessary.