Глава.3 .Совместно.используемые.сборки.и.сборки.со.строгим.именем
целостность файла. Позже я объясню принцип, лежащий в основе устойчивости
к несанкционированной модификации сборок со строгими именами.
Глобальный кэш сборок
Теперь вы знаете, как создаются сборки со строгим именем — пора научиться
развертывать такие сборки и узнать, как CLR использует метаданные для поиска
и загрузки сборки.
Если сборка предназначена для совместного использования несколькими при-
ложениями, ее нужно поместить в общеизвестный каталог, который среда CLR
должна автоматически проверять при обнаружении ссылки на сборку. Место,
где располагаются совместно используемые сборки, называют
глобальным кэшем
сборок
(global assembly cache, GAC). Точное местонахождение GAC – подробность
реализации, которая может изменяться в будущих версиях .NET Framework. Тем
не менее обычно GAC находится в каталоге
%SystemRoot%\Microsoft.NET\Assembly
GAC имеет иерархическое строение и содержит множество вложенных каталогов,
имена которых генерируются по определенному алгоритму. Ни в коем случае не
следует копировать файлы сборок в GAC вручную — вместо этого надо использовать
инструменты, созданные специально для этой цели. Эти инструменты «знают» вну-
треннюю структуру GAC и умеют генерировать надлежащие имена подкаталогов.
В период разработки и тестирования сборок со строгими именами для установки
их в каталог GAC чаще всего применяют инструмент
GACUtil exe
. Запущенный без
параметров, он отобразит следующие сведения:
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.17929
Copyright (c) Microsoft Corporation. All rights reserved.
Usage: Gacutil [ ]
Commands:
/i [ /r <...> ] [ /f ]
Installs an assembly to the global assembly cache.
/il [ /r <...> ] [ /f ]
Installs one or more assemblies to the global assembly cache.
/u [ /r <...> ]
Uninstalls an assembly from the global assembly cache.
/ul [ /r <...> ]
Uninstalls one or more assemblies from the global assembly cache.
/l [ ]
List the global assembly cache filtered by
103
Глобальный.кэш.сборок
/lr [ ]
List the global assembly cache with all traced references.
/cdl
Deletes the contents of the download cache
/ldl
Lists the contents of the download cache
/?
Displays a detailed help screen
Options:
/r
Specifies a traced reference to install (/i, /il) or uninstall (/u, /ul).
/f
Forces reinstall of an assembly.
/nologo
Suppresses display of the logo banner
/silent
Suppresses display of all output
Вызвав утилиту
GACUtil exe
с параметром
/i
, можно установить сборку в ка-
талог GAC, а с параметром
/u
сборка будет удалена из GAC. Обратите внимание,
что сборку с нестрогим именем нельзя поместить в GAC. Если передать
GACUtil
exe
файл сборки с нестрогим именем, утилита выдаст следующее сообщение
об ошибке (ошибка добавления сборки в кэш: попытка установить сборку без
строгого имени):
Failure adding assembly to the cache: Attempt to install an assembly
without a strong name
Do'stlaringiz bilan baham: |