Главная » C# » Перемещение сборки со строгим именем в кэш GAC в Visual C# (Sharp)

0

Кроме возможности уточненного указания загружаемой сборки, другой причиной для использования точных имен сборок является возможность загрузки сборки из кэша GAC. К помещенным в кэш GAC сборкам возможен разделяемый глобальный доступ. Кэш GAC можно рассматривать как папку Windows\System32 среды .NET. Собственно кэш расположен в папке C:\Windows\assembly (рис. 12.7).

Рис. 12.7. Папка кэша GAC

Хотя кэш GAC и является обыкновенной папкой, содержащиеся в ней сборки неля удалять просто так, как содержимое других папок.  Файлы из кэша GAC удалтся с помощью команды Uninstall контекстного меню (рис. 12.8).

Рис. 12.8. Удаление файла сборки из кэша GAC

Для  помещения  сборки  в  кэш  GAC  применяется  утилита  gacutil,  поставляемая с набором SDK .NET (не входит в состав Visual С# Express).

Следующие  две  строчки  кода  демонстрируют  добавление  сборок  Definitions и  implementations2 в  кэш  GAC  (предполагается,  что  файлы  implementations.dll и definitions.dll находятся в текущем каталоге).

gacutil /I definitions.dll gacutil /I implementations2.dll

Добавление сборки Definitions является обязательным, т. к. от нее зависит сборка implementations2. Если не добавить сборку Definitions, то будет сгенерирована ошибка утилиты gacutil.

ОРГАНИЗАЦИЯ      ДИНАМИЧЕСКОГО       КОДА

Не используйте способы, показанные в книге, для помещения файлов в кэш GAC для промышленного выпуска программ. Рассматриваемые в  книге  методы  предназначтся исключительно для разработчиков.  Это  ускоренные  методы,  применение  котых полагает, что вы знаете, какие зависимости существуют, и уверены в том, что вы делаете. Для установки файлов в кэш GAC для дистрибутивных версий программ пользуйтесь  приложением  Microsoft Windows  Installer.

Хотя написание динамического кода и возможно в Visual С# Express, данная среда разрабчтки оставляет желать много лучшего. Версии Visual Studio более высокого уровня специально предназначены для разработки динамического кода. При  разротке  все  должно  быть  организовано должным  образом.  В  Visual  С#  Express  органи-

зованность  зависит  от  правильного  выполнения  всех  операций.  В  версиях  Visual Studio более высокого уровня большая часть работы по организации исполняется аоматически.

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

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии