GAC - Чтобы добавить сборку в GAC, перетаскивание работает, но копирование и вставка - нет?Зачем? - PullRequest
6 голосов
/ 24 февраля 2011

Я хотел бы знать, почему перетаскивание работает, а копирование - нет.Что происходит с перетаскиванием, а не с копированием и вставкой?

Ответы [ 2 ]

15 голосов
/ 25 февраля 2011

Когда вы перетаскиваете свою сборку в папку 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 выглядеть как обычная папка, которая не является .

0 голосов
/ 18 января 2012

Спасибо, Дэн Абрамов: я добавил кое-что еще об этом

Проблема: Копирование и вставка не работают при сборке для установки новой библиотеки DLL (C: \ windows \ assembly folder)

Ответ: - вы можете увидеть архитектуру папки через изменения записи regedit через строку «DisableCacheViewer» DWORD в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion сделать так, как это «1»

, чтобы вы могли видетьпредставление папки под тем же.

, и вы можете сбросить все остальные сборки Dll через утилиту Откройте CMD и введите ниже, чтобы использовать Utility для установки"gacutil / i .dll"

для UN-установки"gacutil / u .dll"

если вам нужно установить / удалить более одной сборки, чтобы вы могли использовать

/ il

и

/ ul

опция

лучше всего то, что вы можете сделать пакетный файл иработать под "C: \ Program Files (x86) \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin" одновременно только

Thank ты Ашутош Сони

...