Gacutil.exe (программа глобального кэша сборок)

Программа глобального кэша сборок позволяет просматривать содержимое глобального кэша сборок и кэша загрузки, а также управлять им.

Это средство устанавливается автоматически с Visual Studio и пакетом SDK Windows. Чтобы запустить инструмент, мы рекомендуем использовать командную строку Visual Studio или командную строку пакета Windows SDK (командную оболочку). Эти служебные программы позволяют легко работать с инструментом, не переходя к папке установки. Дополнительные сведения см. в разделе Командная строка Visual Studio и пакета Windows SDK.

  • Если на компьютере установлена среда Visual Studio: на панели задач последовательно щелкните Start, All Programs, Visual Studio, Visual Studio Tools и Visual Studio Command Prompt.

    – или –

    Если на компьютере установлен пакет Windows SDK: на панели задач щелкните Start, выберите All Programs и откройте папку с пакетом Windows SDK, затем щелкните Command Prompt (или CMD Shell).

  • В командной строке введите следующее:

gacutil [options] [assemblyName | assemblyPath | assemblyListFile]

Параметры

Аргумент

Описание

имя_сборки

Имя сборки. Можно предоставить либо частично указанное имя сборки, например myAssembly, либо полное имя сборки, например myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5.

путь сборки

Имя файла, содержащего манифест сборки.

файл списка сборки

Путь к текстовому файлу ANSI, в котором перечислены устанавливаемые или удаляемые сборки. Чтобы использовать текстовый файл для установки сборок, разместите путь к каждой сборке в отдельной строке файла. Инструмент интерпретирует относительные пути относительно расположения файла_списка_сборок. Чтобы использовать текстовый файл для удаления сборок, разместите полное имя каждой сборки в отдельной строке файла. См. ниже примеры содержимого файл_списка_сборок.

Параметр

Описание

/cdl

Удаляет содержимое кэша загрузки.

/f

Чтобы принудительно переустановить сборку, задайте этот параметр с параметром /i или /il. Если сборка с этим именем уже существует в глобальном кэше сборок, она будет перезаписана.

/h[elp]

Отображает синтаксис команд и параметры программы.

/i путь сборки

Устанавливает сборку в глобальный кэш сборок.

/if путь_сборки

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

Задание этого параметра аналогично одновременному заданию параметров /i и /f.

/il файл_списка_сборок

Устанавливает одну или несколько сборок, перечисленных в файле файл_списка_сборок, в глобальный кэш сборок.

/ir путь_сборки

схема

id

описание

Устанавливает сборку в глобальный кэш сборок и добавляет ссылку для счетчика сборки. путь_сборки, схема, idи описание являются обязательными аргументами параметра. Описание допустимых значений этих аргументов см. в описании параметра /r.

Задание этого параметра аналогично одновременному заданию параметров /i и /r.

/l [имя_сборки]

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

/ldl

Выводит содержимое кэша загруженных файлов.

/lr [имя_сборки]

Отображает все сборки и соответствующие счетчики ссылок. Если задан аргумент имя_сборки, отображаются только сборки с соответствующими именами и их счетчики ссылок.

/nologo

Отключает отображение эмблемы Майкрософт при запуске.

/r [имя_сборки | путь_сборки]

схема

id

описание

Задает отслеживаемую ссылку для устанавливаемых или удаляемых сборок. Этот параметр должен быть задан с параметром /i, /il, /u или /ul.

Чтобы установить сборку, задайте аргументы путь_сборки, схема, idи описание. Чтобы удалить сборку, задайте аргументы имя_сборки, схема, idи описание.

Чтобы удалить ссылку на сборку, требуется указать те же самые аргументы схема, id и описание, которые были заданы для параметров /i и /r (или /ir) при установке сборки. При удалении сборки она также удаляется из глобального кэша сборок, если она является последней удаляемой ссылкой, и на нее нет действующих ссылок в установщике Windows.

Аргумент схема задает тип схемы установки. Могут быть указаны следующие значения.

  • UNINSTALL_KEY: Задайте это значение, если приложение добавляется в компонент "Установка и удаление программ" операционной системы Microsoft Windows. Добавление приложений в компонент "Установка и удаление программ" производится путем добавления раздела реестра в HKLM\Software\Microsoft\Windows\CurrentVersion.

  • FILEPATH: Задайте это значение, если приложение не добавляется в компонент "Установка и удаление программ".

  • OPAQUE: Задайте это значение, если задание раздела реестра или пути к файлу неприменимо для сценария установки. Это значение позволяет задать пользовательские сведения для параметра id.

Значение параметра id зависит от значения параметра схема.

  • Если значение параметра схема равно UNINSTALL_KEY, задайте имя приложения, указанное в разделе реестра HKLM\Software\Microsoft\Windows\CurrentVersion. Например, если раздел реестра называется HKLM\Software\Microsoft\Windows\CurrentVersion\MyApp, значение аргумента id должно быть равно MyApp.

  • Если значение параметра схема равно FILEPATH, значение параметра id должно содержать полный путь к исполняемому файлу приложения, устанавливающему сборку.

  • Если значение параметра схема равно OPAQUE, аргумент id может принимать любое значение. Значение аргумента должно быть заключено в двойные кавычки ("").

Параметр описание служит для описания устанавливаемого приложения. Эти сведения отображаются при перечислении ссылок.

/silent

Отключает вывод сведений в процессе работы.

/u имя_сборки

Удаляет сборку из глобального кэша сборок.

/uf имя_сборки

Принудительно удаляет сборку путем удаления всех ссылок на нее.

Задание этого параметра аналогично одновременному заданию параметров /u и /f.

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

/ul файл_списка_сборок

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

/u[ngen] имя_сборки

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

ПримечаниеПримечание
В платформе .NET Framework версии 2.0 значение /ungen не поддерживается.Вместо этого воспользуйтесь командой uninstall метода Ngen.exe (генератор образов в машинном коде).

В .NET Framework версий 1.0 и 1.1, указание параметра /ungen подает команду программе Gacutil.exe на удаление сборки из кэша машинных образов. В этом кэше хранятся образы в машинном коде для сборок, созданных Ngen.exe (генератор образов в машинном коде).

/ur имя_сборки

схема

id

описание

Удаляет ссылку на указанную сборку из глобального кэша сборок. Чтобы удалить ссылку на сборку, требуется указать те же самые аргументы схема, id и описание, которые были заданы параметрами /i и /r (или /ir) при установке сборки. Описание допустимых значений этих аргументов см. в описании параметра /r.

Задание этого параметра аналогично одновременному заданию параметров /u и /r.

/?

Отображает синтаксис команд и параметры программы.

Заметки

Функциональные возможности этого инструмента в части просмотра кэша практически аналогичны функциональным возможностям расширения оболочки Windows (Shfusion.dll), но данное средство более удобно для использования в скриптах построения, файлах MakeFile и пакетных файлах.

ПримечаниеПримечание

Чтобы использовать программу Gacutil.exe необходимо иметь полномочия администратора.

Конкретно программа Gacutil.exe позволяет устанавливать и удалять сборки из кэша и отображать содержимое кэша.

Программа Gacutil.exe поддерживает подсчет ссылок, аналогичный схеме подсчета, поддерживаемой установщиком Windows. Программа Gacutil.exe позволяет устанавливать два приложения, устанавливающих одну сборку; инструмент отслеживает число ссылок на сборку. В результате сборка останется на компьютере до тех пор, пока оба приложения не будут удалены. При запуске Gacutil.exe для установки программных продуктов задавайте параметры, поддерживающие подсчет ссылок. Чтобы установить сборку и добавить ссылку для подсчета, задайте параметры /i и /r одновременно. Чтобы удалить подсчет ссылок на сборку, задайте параметры /u и /r одновременно. Помните, что при задании только параметра /i или только параметра /u подсчет ссылок не поддерживается. Эти параметры можно использовать во время разработки продукта, но не при установке готового программного обеспечения.

Параметры /il и /ul служат для установки и удаления списка сборок, хранящегося в текстовом файле ANSI. Содержимое файла должно быть правильно отформатировано. Чтобы использовать текстовый файл для установки сборок, разместите путь к каждой сборке в отдельной строке файла. Ниже приведен пример содержимого файла со списком устанавливаемых сборок.

myAssembly1.dll
myAssembly2.dll
myAssembly3.dll

Чтобы использовать текстовый файл для удаления сборок, разместите полное имя каждой сборки в отдельной строке файла. Ниже приведен пример содержимого файла со списком удаляемых сборок.

myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab

Примеры

Следующая команда устанавливает сборку mydll.dll в глобальный кэш сборок.

gacutil /i mydll.dll

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

gacutil /u hello

Обратите внимание, что предыдущая команда может удалить несколько сборок из глобального кэша сборок, так как имя сборки определено не полностью. Если в кэше установлены версии 1.0.0.0 и 3.2.2.1 сборки hello, команда gacutil /u hello удалит обе сборки.

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

gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca

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

gacutil /il assemblyList.txt

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

gacutil /ul assemblyList.txt

Следующая команда устанавливает myDll.dll в глобальный кэш сборок и добавляет ссылку для счетчика. Сборка myDll.dll используется приложением MyApp. Аргумент UNINSTALL_KEY MyApp задает раздел реестра, который добавляет приложение MyApp в компонент "Установка и удаление программ". Параметр описания указывается как My Application Description.

gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"

Следующая команда устанавливает myDll.dll в глобальный кэш сборок и добавляет ссылку для счетчика. Значение параметра схема FILEPATH, и значение параметра id c:\applications\myApp\myApp.exe задают путь к приложению, устанавливающему myDll.dll. Значение параметра описание равно MyApp.

gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

Следующая команда устанавливает myDll.dll в глобальный кэш сборок и добавляет ссылку для счетчика. Значение параметра схема, равное OPAQUE, позволяет ввести любые аргументы id и описание.

gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"

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

gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp

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

gacutil /l

См. также

Ссылки

Shfusion.dll (программа просмотра кэша сборок)

Regasm.exe (средство регистрации сборок)

Командная строка Visual Studio и пакета Windows SDK

Основные понятия

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

Другие ресурсы

Инструменты .NET Framework

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Добавлены сведения об использовании командных строк Visual Studio и Windows SDK.

Улучшение информации.