Поделиться через


Работа со сборками и глобальным кэшем сборок

Обновлен: Ноябрь 2007

Если необходимо обеспечить возможность совместного использования сборки в нескольких приложениях, то ее можно поместить в глобальный кэш сборок. Этот кэш кода уровня компьютера присутствует на любом компьютере, где установлена среда CLR. В глобальном кэше сборок хранятся сборки, специально предназначенные для совместного использования несколькими приложениями, установленными на компьютере. Для установки в глобальном кэше сборка должна иметь строгое имя.

6axd4fx6.alert_note(ru-ru,VS.90).gifПримечание.

Имя сборки, установленной в глобальном кэше сборок, должно совпадать с именем файла (без учета расширения имени файла). К примеру, файл сборки с именем myAssembly должен иметь имя myAssembly.exe или myAssembly.dll.

Прибегать к совместному использованию сборок путем их установки в глобальном кэше следует только при необходимости. Как правило, зависимости между сборками следует сохранять закрытыми, а сборки нужно размещать в каталоге приложения, если только совместное использование сборки не подразумевается в явной форме. Кроме того, установка сборок в глобальном кэше для обеспечения доступа к ним с помощью COM-взаимодействия или из неуправляемого кода не является обязательной.

Существует несколько причин для установки сборки в глобальном кэше сборок.

  • Совместное расположение.

    Используемые несколькими приложениями сборки можно располагать в глобальном кэше сборок. Например, если все приложения используют сборку, расположенную в глобальном кэше сборок, то в файл Machine.config может быть добавлена инструкция политики выбора версий, которая перенаправляет ссылки на эту сборку.

  • Безопасность файлов.

    Администраторы часто защищают корневой каталог системы с помощью списка управления доступом (ACL), чтобы иметь возможность контролировать доступ на запись и выполнение. Поскольку глобальный кэш сборок размещается в корневом каталоге системы, то он наследует список ACL этого каталога. Рекомендуется предоставлять право на удаление файлов из глобального кэша сборок только тем пользователям, которые имеют права доступа администратора.

  • Управление параллельными версиями.

    В глобальном кэше сборок может храниться несколько сборок, имеющих одинаковое имя, но различные сведения о версии.

  • Дополнительное место для поиска.

    Перед проверкой или использованием данных о базе кода в файле конфигурации среда CLR ищет в глобальном кэше сборки, соответствующие запросу.

Обратите внимание, что существуют сценарии, в которых установка сборки в глобальный кэш сборок явно не требуется. Если одна из составляющих приложение сборок помещается в глобальный кэш, то после этого нельзя будет скопировать или установить приложение с помощью команды XCOPY путем копирования каталога приложения. В этом случае также требуется переместить сборку в глобальный кэш сборок.

В этом подразделе

Связанные подразделы