louis vuitton bag moncler jacka ugg boots mbt sko louis vuitton oslo moncler ugg www.steklo1.ru
   Поиск
 

FrameWork

MicroSoft DotNet

Cи Шарп это просто Simple C#
Логин Пароль Вход Регистрация
Главная
Изучаем C#
Web-приложения
Win-приложения
Web-сервисы
ADO.NET
FrameWork
Алгоритмы
Исходники
Классы
Среда разработки
Статьи
Форум
FAQ
О Проекте
Обратная связь
Отблагодарить
Rambler's Top100

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

Теперь вы умеете создавать сборки со строгим именем — пора узнать, как развертывают такие сборки и как CLR использует метаданные для поиска и загрузки
сборки.
Если сборка предназначена для совместного использования несколькими приложениями, ее нужно поместить в общеизвестный каталог, который CLR должна
автоматически проверять, обнаружив ссылку на сборку. Место, где располагаются совместно используемые сборки, называется глобальный кэш сборок (global
assembly cache, GAC), обычно это каталог:
С:\Windows\Assembly\GAC
Каталог GAC обладает особой структурой и содержит множество вложенных
каталогов, имена которых генерируются по определенному алгоритму. Ни в коем
случае не следует копировать файлы сборок в GAC вручную — вместо этого надо
использовать инструменты, созданные специально для этой задачи. Эти инструменты «знают» внутреннюю структуру GAC и умеют генерировать надлежащие
имена подкаталогов.
В период разработки и тестирования сборок со строгими именами для установки их в GAC чаще всего применяют инструмент GACUtil.exe. Запущенный без
параметров, он покажет такие сведения о его использовании:
вызвав GACUtil.exe с переключателем /i, можно установить сборку в GAC, а если задать переключатель /и, сборка будет удалена из GAC. Заметьте:
сборку с нестрогим именем даже нельзя поместить в GAC. Если передать GACUtil.exe
файл сборки с нестрогим именем, утилита покажет сообщение об ошибке:
«Failure adding assembly to the cache: Attempt to install an assembly without a strong
name" («Ошибка при добавлении сборки в кэш: попытка установить сборку без строгого именно).
Зачем «регистрировать* сборку в GAC? Представьте себе, что две компании
сделали каждая свою сборку Calculus, состоящую из единственного файла: Calculus.
dll. Очевидно, эти файлы нельзя копировать в один каталог, поскольку при этом
файл, копируемый последним, затрет первый и тем самым нарушит работу какого-нибудь приложения. Если для установки в GAC используется специальный инструмент, он создает в каталоге C:\Windows\Assembly\GAC отдельный каталог для
каждой из этих сборок, и копирует каждую сборку в свой каталог.
Обычно пользователи не просматривают структуру каталогов GAC, поэтому для
вас она не имеет реального значения. Довольно того, что структура каталогов (iAC
известна CLR и инструментам, работающим с GAC. И все же забавы ради я приведу описание внутренней структуры GAC в следующем разделе.
При установке .NET Framework также устанавливается расширение Проводи ика
(ShFusion.dll). Эта программа-расширение тоже «знает» структуру GAC и показывает его содержимое в «нормальном» виде, понятном пользователю. Просматривая каталог C:\Windows\Assembly в Проводнике на своем компьютере, я вижу сборки,
установленные в GAC. В каждой строке списка показаны имя сборки, ее
тип, номер версии, региональные стандарты (если есть) и маркер открытого ключа.

Предыдущая стр.    Оглавление    Следующая стр.
Средняя оценка: (1 - 1 голосов)
Для оценки необходимо зарегистрироваться


Только зарегистрировавшиеся пользователи могут оставлять комментарии



Практический обучающий видео-курс "Основы C#"

От профессионального
разработчика для начинающих
и опытных программистов!

Кликните, чтобы изучить
язык C# с нуля и научиться
писать программы под платформу .NET!