There are several advantages to using the GAC for shared assemblies:
- Shared Location: Assemblies that are used my many applications can reference the GAC, instead of a separate version being distributed with each application.
- File Security: Administrators often protect the WINNT directory using an Access Control List (ACL) to control write and execute access. Because the global assembly cache is installed in the WINNT directory, it inherits that directory's ACL. It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.
- Versioning: Because the assemblies are strongly named, they have a unique reference which allows multiple versions to be installed on the same machine. This allows for older applications to reference the old assembly, while newer applications to use a later version.