Глобальный кэш сборок
Обновлен: Ноябрь 2007
На каждом компьютере с установленной средой CLR имеется кэш кода на уровне компьютера, называемый глобальным кэшем сборок. В глобальном кэше сборок сохраняются сборки, специально предназначенные для совместного использования на компьютере несколькими приложениями.
Организовывать совместное использование сборок путем установки их в глобальный кэш следует только при необходимости. Как правило, зависимости между сборками следует сохранять закрытыми, а сами сборки нужно размещать в папке приложения, если они не предназначены для совместного использования. Кроме того, не обязательно устанавливать сборки в глобальный кэш сборок для доступа к ним из COM-взаимодействия или из неуправляемого кода.
Примечание. |
---|
Существуют случаи, в которых явно не требуется установка сборки в глобальный кэш сборок. Если одна из составляющих приложение сборок помещается в глобальный кэш, то становится невозможной репликация или установка приложения с помощью команды xcopy для копирования папки приложения. Для этого также потребуется переместить сборку в глобальном кэше сборок. |
Существует несколько способов развертывания сборки в глобальном кэше сборок.
Использование программы установки, предназначенной для работы с глобальным кэшем сборок. Данный подход является предпочтительным при установке сборок в глобальный кэш.
Использование инструмента разработчика под названием средство глобального кэша сборок (Gacutil.exe), предоставляемого в SDK (пакет средств разработки программного обеспечения) для Windows.
Использовать Windows Explorer для перетаскивания сборок в кэш.
Примечание. В сценариях развертывания для установки сборок в глобальный кэш используйте установщик Windows версии 2.0. Используйте Windows Explorer или средство глобального кэша сборок только при разработке, поскольку они не обеспечивают подсчет ссылок на сборку и другие возможности, предоставляемые при использовании установщика Windows.
Администраторы часто защищают папку systemroot с помощью списка управления доступом, определяющего права на запись и выполнение. Поскольку глобальный кэш сборок устанавливается в подкаталоге каталога SystemRoot, для него наследуется этот список управления доступом. Рекомендуется разрешать удаление файлов из глобального кэша сборок только пользователям, имеющим права доступа администратора.
Приложения, развернутые в глобальном кэше сборок, должны иметь строгие имена. При добавлении сборки в глобальный кэш сборок выполняется проверка целостности всех входящих в сборку файлов. Кэш выполняет такую проверку целостности, чтобы гарантировать, что сборка не была изменена (например, если файл был изменен, но изменения не были отражены в манифесте сборки).