Что такое GAC в контексте языка C#?
GAC - Global Assembly Cash - это место, где хранятся совместно используемые сборки. Туда можно поместить сборки с исключительно строгими именами.
В случае если имя добавляемой сборки совпадает с именем какой-то уже имеющейся сборки, то для этого были созданы подкаталоги, через которые настраивается маршрутизация к необходимой сборке.