Процесс создания строгого имени. — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Процесс создания строгого имени.

2017-12-21 197
Процесс создания строгого имени. 0.00 из 5.00 0 оценок
Заказать работу

 

Для создания строгого имени сборки сначала генерируются данные открытого и

секретного ключей с помощью поставляемой в составе.NET Framework 4.0 SDK

утилиты sn. ехе. (Эта утилита генерирует файл, который обычно оканчивается расширением *. snk (Strong Name Key — ключ строгого имени) и содержит данные для двух разных, но математически связанных ключей — "открытого" и "секретного".)

После указания местонахождения этого файла *. snk компилятору С# тот запишет полное значение открытого ключа в манифест сборки с использованием дескриптора.publickey.

Компилятор С# генерирует на основе всего содержимого сборки (CIL-кода, метаданных и т.д.) соответствующий хеш-код. (хеш-кодом называется числовое значение, которое является статистически уникальным для фиксированных входных данных.)

Следовательно, в случае изменения какого-то аспекта сборки.NET (даже одного символа в строковом литерале), компилятор выдает другой хеш-код. Далее этот хеш-код объединяется с содержащимися внутри файла *. snk данными секретного ключа для получения цифровой подписи, вставляемой в сборку внутрь данных заголовка CLR.

 

Назначение и применение утилиты sn.exe

Для создания строгого имени сборки сначала генерируются данные открытого и секретного ключей с помощью утилиты sn.exe поставляемой в составе.NETFramework 4.0 SDK. Эта утилита генерирует файл, который обычно оканчивается расширением *.snk (StrongNameKey– ключ строгого имени) и содержит данные для двух разных, но математически связанных ключей – «открытого» и «секретного». После указания местонахождения этого файла *.snk компилятору С# тот запишет полное значение открытого ключа в манифест сборки с использованием дескриптора publickey.

Установка разделяемой сборки.

Назначение и применение утилиты gacutil.exe

Как и одноименное средство от Microsoft, утилита gacutil из состава Mono может устанавливать и удалять сборки, а также выводить список сборок, установленных в кэше C:\ProgramFiles\Mono-<версия>\lib\mono\gac. Следующая команда развертывает сборку CorLibDumper.dllв GAC и регистрирует ее в компьютере как общедоступную сборку:

gacutil –ICorLibDumper.dll

Если после выполнения этой команды открыть каталог \gac, то вы увидите там новую папку с именем CorLibDumper. Эта папка определяет подкаталог.

Опция –l утилиты gacutil выводит список всех сборок в MonoGAC.

 

Назначение и применение утилиты ildasm.exe

Манифест сборки.

Манифест – метаданные, которые описывают саму сборку. В манифесте документируются все внешние сборки, которые требуются текущей сборке для корректного функционирования, версия сборки, информация об авторских правах и т.д. Как и за генерацию метаданных типов, за генерацию манифеста сборки всегда тоже отвечает компилятор.

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

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

Таким образом, манифест является тем инструментом, который позволяет скрыть от потребителя детали реализации. Именно благодаря этому механизму каждая сборка является самодостаточной и не требует привлечения внешних средств, таких как реестр. Это позволяет в большинстве случаев свести установку приложения к простому копированию.

Уникальность сборки

Каждая сборка имеет уникальное имя, которое состоит из следующих частей: префикса, основанного на открытом ключе разработчика, простого текстового имени, номера версии и информации о локализации. Некоторые сборки могут иметь только простое текстовое имя, но в таких случаях их можно использовать только как часть другого приложения (так как иначе нельзя гарантировать их уникальность).


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.