Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 294

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 288 289 290 291 292 293 < 294 > 295 296 297 298 299 300 .. 404 >> Следующая


Прантинум: создание файла с ключом

Создание файла с ключом

Прежде всего необходимо создать файл с ключом с помощью утилиты sn.exe, которая обычно инсталлируется в директории Program Files\Microsoft.NET\Frame-workSDK\Bin. В этом файле будут храниться общие и частные ключи, поэтому мы назовем его company.кеу:

sn -k Company.Key

Теперь необходимо извлечь ту часть общего ключа, которая будет использоваться разработчн ка м и:

sn -р Company .Key Company. Public

Эта команда приведет к созданию файла с ключом company.Public, в котором будет содержаться только общедоступная часть ключа. Этот файл с общим ключом может быть скопирован на все компьютеры и не требует какнх-то мер по обеспечению безопасности — оберегать следует файл с частным ключом. Спрячьте файл company.кеу подальше, поскольку он понадобится, только когда вы захотите окончательно пометить свои модули,

Для того чтобы пометить модуль как “отсроченный” и зарегистрировать его в GAC, необходимо также получить маркер общего ключа, который обычно представляет собой укороченный вариант общего ключа, используемого для регистрации модулей. Получить маркер можно одним нз следующих способов:

? Непосредственно из общего файла с ключа sn -t Company.Public

? Из любого модуля, помеченного этим ключом:

sn -Т <assembly>

Оба способа позволяют получить хешированную версию общего ключа, причем онн чувствительны к регистру. Это будет объяснено более подробно при описании регистрации модуля.
628

Глава 22

Практикум: создание “отсроченных" модулей

Приведенный ниже пример демонстрирует, *какнм образом можно с помощью атрибутов пометить модуль как “отсроченный”. Этот пример находится в директории Chapter22/DelaySign:

using System;

using System.Reflection;

И Определение файле, а которой содержится частный ключ [assembly: Assembly* /File ('Company.Public*)J

П и того Факта, что дойный модуль должен быть помечен как 'отсроченный*. [assembly: AssamblyDelaySion (true)] '

public class DelayedSigning {

public DelayedSigning 0 (

)

Как это работает

Атрибут AssemblyKeyFile позволяет определить, в каком файле следует искать ключ. Это может быть либо файл, содержащий общий ключ, либо — для наиболее доверенных лиц — файл, в котором содержатся как общий, так н частный ключи. Атрибут AssemblyDelaySign определяет, будет ли данный модуль помечен обычным образом (false) или как “отсроченный” (true).

Если для всех проектов вы используете Visual Studio.NET, то в таком случае создается файл с именем Aasembiyinfo.cB, в котором описываются различные атрибуты, в частности, атрибуты, предназначенные для работы с номерами версий н для хранения информации о файле, которые рассматривались в этой главе. Кроме того, именно в данном файле определяются атрибуты AssemblyDelaySign, прн этом для каждого нового проекта создаются новые значения, используемые по умолчанию.

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

В нижней части экрана (см, рис. слева) представлен общий ключ, хранящийся в манифесте. Необходимо отметить, что в верхней части экрана располагается ссылка на maeoriib.dll. В этой библиотеке содержится большая часть объектов пространства имен System (и его производных). При этом выводится не только информация о версии данного модуля, но и маркер его общего ключа, который представляет собой последовательность байтов. Если модули сторонних производителей ссылаются на ваш модуль, в них также должна указываться хешнрованная версия вашего общего ключа. *

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

. {тЫкскдтюЬш - (В? 7J, (С It IV >1 Ш II }

.трг 1-® /*110 ми>Ь1г

.cu*icf* iDfianc* void [чгс&г!loci пап 1мотЫ?&*1*)?*

.ditto* kiiuaie Mid (мюiibjSytto* blivciim

---ТТы» Lollmh? Cuaio eUrbbwto La *4dod Lc«ll?, drt,

^ uatuc* *oid [b*tafiib)S7*te* 0*Ь**9*Ы

.jMbUcX*r * (00 24 00 H 04 19 OU &0 ft Q0 <JQ 00 04 M 00 00

00 J4 qo M W « <1 >1 К 00 w 01 ОС 41 АО

IS К 01 U СЭ 31 12 ОС JS Е* 4C Г? 41 M IS *4

6* It 7t И « IF rt Fti IE K1 44 C* FI DJ К

BO г: 67 90 II IM7 U ffi Q El Ю •• 04 or F0

a? w « ft ?s E2 и n я ct a ie o* jd ic 4s

03 Ю DA 10 4> 41 7f M H «F К A4 •• JC «Е

»A Jt 09 42 Cl 47 0? « 41 4E Cl 44 Cl BC 10 44

1C 10 11 C< 0B S3 C2 tE 15 n to U DC (Г

•0 41 10 47 46 04 9’ IE Bl> 1? 14 71 94 S3 Ot )

ЬыЬ •LfOrtthi fatODQOtOO* m 00 0 0

j

mm
Для того чтобы добавить ссылку на другой модуль нз командной строки, следует воспользоваться опцией /г, как, например, в /г:System.Data.du:

.asembly extern DelaSign

<

.publickeytoken = (34 AA A4 14 6E EO IE 4A)

.ver 0: 0 :0 :0:

>

Регистрация в GAC
Предыдущая << 1 .. 288 289 290 291 292 293 < 294 > 295 296 297 298 299 300 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.