Работа со сборками и глобальным кэшем сборокWorking with Assemblies and the Global Assembly Cache

Если необходимо обеспечить возможность совместного использования сборки в нескольких приложениях, то ее можно поместить в глобальный кэш сборок.If you intend to share an assembly among several applications, you can install it into the global assembly cache. Этот кэш кода уровня компьютера присутствует на любом компьютере, где установлена среда CLR.Each computer where the common language runtime is installed has this machine-wide code cache. В глобальном кэше сборок сохраняются сборки, специально предназначенные для совместного использования на компьютере несколькими приложениями.The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. Для установки в глобальном кэше сборка должна иметь строгое имя.An assembly must have a strong name to be installed in the global assembly cache.

Примечание

Имя сборки, установленной в глобальном кэше сборок, должно совпадать с именем файла (без учета расширения имени файла).Assemblies placed in the global assembly cache must have the same assembly name and file name (not including the file name extension). К примеру, файл сборки с именем myAssembly должен иметь имя myAssembly.exe или myAssembly.dll.For example, an assembly with the assembly name of myAssembly must have a file name of either myAssembly.exe or myAssembly.dll.

Прибегать к совместному использованию сборок путем их установки в глобальном кэше сборок следует только при необходимости.You should share assemblies by installing them into the global assembly cache only when necessary. Как правило, зависимости между сборками следует сохранять закрытыми, а сами сборки нужно размещать в папке приложения, если они не предназначены для совместного использования.As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. Кроме того, установка сборок в глобальном кэше сборок для обеспечения доступа к ним с помощью COM-взаимодействия или из неуправляемого кода не является обязательной.In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.

Существует несколько причин для установки сборки в глобальном кэше сборок.There are several reasons why you might want to install an assembly into the global assembly cache:

  • Общее расположение.Shared location.

    Используемые несколькими приложениями сборки можно располагать в глобальном кэше сборок.Assemblies that should be used by applications can be put in the global assembly cache. Например, если все приложения используют сборку, расположенную в глобальном кэше сборок, то в файл Machine.config можно добавить оператор политики выбора версий, который перенаправляет ссылки на эту сборку.For example, if all applications should use an assembly located in the global assembly cache, a version policy statement can be added to the Machine.config file that redirects references to the assembly.

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

    Администраторы часто защищают папку systemroot с помощью списка управления доступом, определяющего права на запись и выполнение.Administrators often protect the systemroot directory using an Access Control List (ACL) to control write and execute access. Так как глобальный кэш сборок размещается в корневом каталоге системы, он наследует список управления доступом этого каталога.Because the global assembly cache is installed in the systemroot directory, it inherits that directory's ACL. Рекомендуется разрешать удаление файлов из глобального кэша сборок только пользователям, имеющим права доступа администратора.It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.

  • Управление параллельными версиями.Side-by-side versioning.

    В глобальном кэше сборок может храниться несколько сборок, имеющих одинаковые имена, но различные сведения о версии.Multiple copies of assemblies with the same name but different version information can be maintained in the global assembly cache.

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

    Перед проверкой или использованием сведений о базе кода в файле конфигурации среда CLR ищет в глобальном кэше сборки, соответствующие запросу.The common language runtime checks the global assembly cache for an assembly that matches the assembly request before probing or using the codebase information in a configuration file.

Обратите внимание, что существуют сценарии, в которых установка сборки в глобальный кэш сборок явно не требуется.Note that there are scenarios where you explicitly do not want to install an assembly into the global assembly cache. Если одна из составляющих приложение сборок помещается в глобальный кэш сборок, то после этого нельзя будет скопировать или установить приложение с помощью команды XCOPY путем копирования каталога приложения.If you place one of the assemblies that make up an application into the global assembly cache, you can no longer replicate or install the application by using XCOPY to copy the application directory. В этом случае также требуется переместить сборку в глобальный кэш сборок.In this case, you must also move the assembly into the global assembly cache.

В этом разделеIn This Section

Практическое руководство. Установка сборки в глобальный кэш сборокHow to: Install an Assembly into the Global Assembly Cache
Описание способов установки сборки в глобальном кэше сборок.Describes the ways to install an assembly into the global assembly cache.

Практическое руководство. Просмотр содержимого глобального кэша сборокHow to: View the Contents of the Global Assembly Cache
Описание того, как использовать средство глобального кэша сборок (Gacutil.exe) для просмотра содержимого глобального кэша сборок.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to view the contents of the global assembly cache.

Практическое руководство. Удаление сборки из глобального кэша сборокHow to: Remove an Assembly from the Global Assembly Cache
Описание того, как использовать средство глобального кэша сборок (Gacutil.exe) для удаления сборки из глобального кэша сборок.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to remove an assembly from the global assembly cache.

Использование обслуживаемых компонентов с глобальным кэшем сборокUsing Serviced Components with the Global Assembly Cache
Содержит сведения о том, почему обслуживаемые компоненты (управляемые компоненты COM+) следует помещать в глобальный кэш сборок.Explains why serviced components (managed COM+ components) should be placed in the global assembly cache.

Создание сборокCreating Assemblies
Содержит общие сведения о создании сборок.Provides an overview of creating assemblies.

Глобальный кэш сборокGlobal Assembly Cache
Содержит общие сведения о глобальном кэше сборок.Describes the global assembly cache.

Практическое руководство. Просмотр содержимого сборкиHow to: View Assembly Contents
Описание того, как использовать программу Ildasm.exe (дизассемблер IL) для просмотра данных MSIL в сборке.Explains how to use the Ildasm.exe (IL Disassembler) to view Microsoft intermediate language (MSIL) information in an assembly.

Обнаружение сборок в среде выполненияHow the Runtime Locates Assemblies
Описание того, как среда CLR находит и загружает сборки, составляющие приложение.Describes how the common language runtime locates and loads the assemblies that make up your application.

Программирование с использованием сборокProgramming with Assemblies
Описывает сборки, "кирпичики", с помощью которых создаются управляемые приложения.Describes assemblies, the building blocks of managed applications.