Глобальный кэш сборок windows

Практическое руководство. установку сборки в глобальный кэш сборок How to: Install an assembly into the global assembly cache

В глобальном кэше сборок сохраняются сборки, которые могут использоваться несколькими приложениями. The global assembly cache (GAC) stores assemblies that several applications share. Установите сборку в глобальный кэш сборок с одним из следующих компонентов: Install an assembly into the global assembly cache with one of the following components:

В глобальный кэш сборок можно установить только сборки со строгими именами. You can install only strong-named assemblies into the global assembly cache. Дополнительные сведения о создании сборки со строгим именем см. в разделе Практическое руководство. Подписание сборки со строгим именем. For information about how to create a strong-named assembly, see How to: Sign an assembly with a strong name.

Установщик Windows Windows Installer

Установщик Windows — средство установки Windows, которое рекомендуется использовать для добавления сборок в GAC. Windows Installer, the Windows installation engine, is the recommended way to add assemblies to the global assembly cache. Установщик Windows предоставляет возможность подсчета ссылок на сборки в GAC и другие дополнительные возможности. Windows Installer provides reference counting of assemblies in the global assembly cache and other benefits. Создать пакет установщика для установщика Windows можно с помощью расширения Wix Toolset для Visual Studio 2017. To create an installer package for Windows Installer, use the WiX toolset extension for Visual Studio 2017.

Средство глобального кэша сборок Global Assembly Cache tool

Служебную программу глобального кэша сборок .NET (gacutil.exe) можно использовать для добавления сборок в глобальный кэш сборок и для просмотра содержимого указанного кэша. You can use the .NET Global Assembly Cache utility (gacutil.exe) to add assemblies to the global assembly cache and to view the contents of the global assembly cache.

Gacutil.exe предназначен только для разработки. Gacutil.exe is for development purposes only. Не используйте его для установки рабочих сборок в глобальный кэш сборок. Don’t use it to install production assemblies into the global assembly cache.

Синтаксис для использования gacutil.exe для установки сборки в глобальном кэше сборок выглядит следующим образом: The syntax for using gacutil.exe to install an assembly in the GAC is as follows:

В этой команде представляет собой имя сборки, устанавливаемой в глобальный кэш сборок. In this command, is the name of the assembly to install in the global assembly cache.

Установка сборки в глобальном кэше сборок .NET Framework

В этой статье описывается, как установить DLL файл сборки в глобальном кэше сборок Microsoft .NET Framework и создать сборку, имеющую строгое имя, с помощью Visual Studio.

Исходная версия продукта: .NET Framework, Visual Studio
Исходный номер статьи базы знаний: 910355

Сводка

Для установки файла Assembly. dll в глобальном кэше сборок .NET Framework можно использовать средство глобального кэша сборок .NET Framework SDK. Кроме того, с помощью средства глобального кэша сборок можно проверить, установлена ли сборка в глобальном кэше сборок. Для выполнения этой задачи у вас могут быть права администратора на компьютере, на котором установлена общая сборка. Более того, необходимо установить пакет SDK для .NET Framework.

Глобальный кэш сборок

Глобальный кэш сборок .NET Framework — это кэш кода. Глобальный кэш сборок устанавливается автоматически на каждом компьютере с установленной средой CLR .NET Framework. Любое приложение, установленное на компьютере, может получать доступ к глобальному кэшу сборок. Глобальный кэш сборок содержит сборки, предназначенные для совместного использования несколькими приложениями на компьютере. Сборки компонентов обычно хранятся в C:\WINNT\Assembly папке.

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

Сборка

Сборка является фундаментальной частью программирования с помощью .NET Framework. Сборка является повторно используемым, самоопределяющим блоком приложения общеязыковой среды выполнения .NET Framework.

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

Подпись строгого имени

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

  • Простое текстовое имя сборки.
  • Номер версии сборки
  • Сведения о культуре сборки, если эти сведения предоставляются
  • Сочетание открытых ключей и закрытых ключей

Эти сведения хранятся в файле ключей. Файл ключа — это файл обмена личной информацией (PFX-файл) или сертификат из хранилища сертификатов Microsoft Windows текущего пользователя.

Вы можете подписать сборку с помощью параметров на вкладке подпись конструктора проектов в Visual Studio. В Visual Studio файл ключа должен храниться в папке проекта на локальном компьютере. Visual Studio поддерживает только следующие форматы файлов:

  • Файлы обмена личной информацией (PFX-файлы)
  • Файлы ключа строгого имени (SNK)

Требования

Перед установкой сборки в глобальном кэше сборок вы можете выполнить следующие требования:

  • Необходимо иметь права администратора на компьютере, на котором установлена общая сборка.
  • Необходимо установить пакет SDK для .NET Framework.

В этой статье предполагается, что вы знакомы со следующими разделами:

  • Общее знакомство с общими сборками в .NET.
  • Общее знакомство с использованием средств из командной строки.

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

Этот метод основан на том, как создать сборку с помощью Visual Studio. Для создания сборки, которая может совместно использоваться несколькими приложениями, общая сборка должна иметь строгое имя. Кроме того, общая сборка должна быть развернута в глобальном кэше сборок.

Чтобы создать небольшую сборку Visual C#, имеющую строгое имя, и установить скомпилированный DLL файл в глобальном кэше сборок, выполните следующие действия:

Создайте новый проект библиотеки классов Visual C# с именем гакдемо. Для этого выполните указанные ниже действия.

  1. Запустите Visual Studio.
  2. В меню файл выберите пункт создать проект.
  3. В списке шаблоны выберите пункт Библиотека классов.
  4. В поле имя введите гакдемо, а затем нажмите кнопку ОК.
  5. Чтобы сохранить проект, нажмите клавиши CTRL + SHIFT + S.
  6. В поле Расположение введите C:\DemoProjects .
  7. Снимите флажок создать каталог для решения и нажмите кнопку сохранить.

Создайте строгое имя, а затем свяжите файл ключа строгого имени со сборкой. Для этого выполните указанные ниже действия.

В меню проект выберите пункт Свойства гакдемо.

На вкладке Подписи установите флажок Подписать сборку.

В разделе выберите файл ключа строгого именивыберите .

В диалоговом окне Создание ключа строгого имени установите флажок защитить мой файл ключей паролем .

В поле имя файла ключей введите гакдемо.

В поле Введите пароль введите пароль, который необходимо использовать.

В поле Подтверждение пароля введите один и тот же пароль, а затем нажмите кнопку ОК.

Мы рекомендуем всегда использовать пароль при создании файла ключей. Новый файл ключа, защищенный паролем, всегда создается в формате PFX-файла.

Чтобы скомпилировать проект, нажмите клавиши CTRL + SHIFT + B.

Для установки DLL-файла в глобальном кэше сборок не требуется дополнительного кода.

Установите DLL файл, созданный на шаге 2 в глобальном кэше сборок, с помощью средства глобального кэша сборок. Для этого выполните указанные ниже действия.

  1. Нажмите кнопку Пуск, выберите выполнить, введите cmdи нажмите кнопку ОК.
  2. Измените текущий рабочий каталог на каталог, где установлен пакет .NET Framework SDK.
  3. В командной строки введите gacutil -I «C:\DemoProjects\GACDemo\bin\Release\GACDemo.dll» команду и нажмите клавишу ВВОД.

Проверка того, установлена ли сборка в глобальном кэше сборок

С помощью средства глобального кэша сборок можно проверить, установлена ли сборка в глобальном кэше сборок. Для этого выполните указанные ниже действия.

Нажмите кнопку Пуск, выберите выполнить, введите cmdи нажмите кнопку ОК.

Измените текущий рабочий каталог на каталог, где установлен пакет .NET Framework SDK.

Для отображения сведений об установке сборки Гакдемо используйте средство глобального кэша сборок. Для этого введите gacutil -l GACDemo команду в командной строки и нажмите клавишу ВВОД.

Отображаются сведения об установке сборки Гакдемо.

Работа со сборками и глобальным кэшем сборок 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.

Использование обслуживаемых компонентов с глобальным кэшем сборок 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.

Читайте также:  Uname linux что делает
Оцените статью