Работа со сборками и глобальным кэшем сборок
Примечание.
Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
Если необходимо обеспечить возможность совместного использования сборки в нескольких приложениях, то ее можно поместить в глобальный кэш сборок. Этот кэш кода уровня компьютера присутствует на любом компьютере, где установлена среда CLR. В глобальном кэше сборок сохраняются сборки, специально предназначенные для совместного использования на компьютере несколькими приложениями. Для установки в глобальном кэше сборка должна иметь строгое имя.
Примечание.
Имя сборки, установленной в глобальном кэше сборок, должно совпадать с именем файла (без учета расширения имени файла). К примеру, файл сборки с именем myAssembly должен иметь имя myAssembly.exe или myAssembly.dll.
Прибегать к совместному использованию сборок путем их установки в глобальном кэше сборок следует только при необходимости. Как правило, зависимости между сборками следует сохранять закрытыми, а сами сборки нужно размещать в папке приложения, если они не предназначены для совместного использования. Кроме того, установка сборок в глобальном кэше сборок для обеспечения доступа к ним с помощью COM-взаимодействия или из неуправляемого кода не является обязательной.
Существует несколько причин для установки сборки в глобальном кэше сборок.
Общее расположение.
Используемые несколькими приложениями сборки можно располагать в глобальном кэше сборок. Например, если все приложения используют сборку, расположенную в глобальном кэше сборок, то в файл Machine.config можно добавить оператор политики выбора версий, который перенаправляет ссылки на эту сборку.
Безопасность файлов.
Администраторы часто защищают папку systemroot с помощью списка управления доступом, определяющего права на запись и выполнение. Так как глобальный кэш сборок размещается в корневом каталоге системы, он наследует список управления доступом этого каталога. Рекомендуется разрешать удаление файлов из глобального кэша сборок только пользователям, имеющим права доступа администратора.
Управление параллельными версиями.
В глобальном кэше сборок может храниться несколько сборок, имеющих одинаковые имена, но различные сведения о версии.
Дополнительное место для поиска.
Перед проверкой или использованием сведений о базе кода в файле конфигурации среда CLR ищет в глобальном кэше сборки, соответствующие запросу.
Обратите внимание, что существуют сценарии, в которых установка сборки в глобальный кэш сборок явно не требуется. Если одна из составляющих приложение сборок помещается в глобальный кэш сборок, то после этого нельзя будет скопировать или установить приложение с помощью команды XCOPY путем копирования каталога приложения. В этом случае также требуется переместить сборку в глобальный кэш сборок.
В этом разделе
Практическое руководство. Установка сборки в глобальный кэш сборок описывает способы установки сборки в глобальный кэш сборок.
Практическое руководство. Просмотр содержимого глобального кэша сборок объясняет, как использовать Gacutil.exe (средство глобального кэша сборок) для просмотра содержимого глобального кэша сборок.
Практическое руководство. Удаление сборки из глобального кэша сборок объясняет, как использовать Gacutil.exe (средство глобального кэша сборок) для удаления сборки из глобального кэша сборок.
Использование обслуживаемых компонентов с глобальным кэшем сборок объясняет, почему обслуживаемые компоненты (управляемые компоненты COM+) должны размещаться в глобальном кэше сборок.
Связанные разделы
Создание сборок содержит общие сведения о создании сборок.
Глобальный кэш сборок описывает глобальный кэш сборок.
Практическое руководство. Просмотр содержимого сборки объясняет, как использовать Ildasm.exe (IL Disassembler) для просмотра сведений об общем языке (CIL) в сборке.
Как среда выполнения находит сборки , описывает, как среда CLR находит и загружает сборки, составляющие приложение.
Программирование с помощью сборок описывает сборки , стандартные блоки управляемых приложений.