Когда вы перетаскиваете свою сборку в папку C:\windows\assembly
, она на самом деле не копируется туда - специальный плагин Windows Explorer вызывает gacutil
для установки вашей сборки в GAC.
Этот плагин Explorer может сбить с толку, поскольку он может создать иллюзию, что GAC - это просто простая папка с большим количеством DLL. На самом деле это иерархическая структура с папкой для каждого имени сборки, внутри которой есть папки для разных версий и т. Д.
Если вы хотите увидеть структуру real GAC, откройте HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
в реестре Windows и установите для DWORD DisableCacheViewer
значение 1
. Это отключит плагин Cache Viewer, который сделает GAC таким простым (но он также сделает перетаскивание для установки непригодным - вам придется вызывать gacutil
самостоятельно). Конечно, вы также можете использовать альтернативные файловые менеджеры или консоль, если не хотите связываться с настройками реестра.
Что касается причин, по которым вставка копий не работает, я считаю, что тот, кто разработал плагин Cache Viewer, считал, что перетаскивание является хорошей метафорой для помещения чего-либо в GAC, тогда как реализует копирование и вставка действительно заставит GAC выглядеть как обычная папка, которая не является .