Создание строгого имени для CarLibrary.dll

Создание строгого имени для CarLibrary.dll

Давайте продемонстрируем весь процесс назначения строгого имени компоновочному блоку CarLibrary, созданному в этой главе выше. Откройте соответствующий проект в той среде разработки, которую вы предпочитаете использовать. Первым делом нужно сгенерировать необходимые данные ключей с помощью утилиты sn.exe. Этот инструмент имеет множество опций командной строки, но нам сейчас понадобится только флаг -k, который дает команду генерировать новый файл, содержащий информацию открытого и секретного ключей. Создайте новую папку MyTestKeyPair на своем диске C и перейдите в нее в окне командной строки .NET. После этого, чтобы сгенерировать файл MyTestKeyPair.snk, введите следующую команду.

sn -k MyTestKeyPair.snk

Теперь, получив данные своего ключа, сообщите компилятору C# о том, где размещается файл MyTestKeyPair.snk. Обратите внимание на то, что при создании рабочего пространства для любого нового проекта C# в Visual Studio 2005 один из исходных файлов проекта получает имя AssemblyInfo.cs (он размещается в рамках узла Properties в окне Solution Explorer). Этот файл содержит ряд свойств, описывающих компоновочный блок. Атрибут AssemblyKeyFile уровня компоновочного блока можно использовать для информирования компилятора о месте расположения файла *.snk. Просто укажите путь в виде строкового параметра, например:

[assembly: AssemblyKeyFile (@"C:MyTestKeyPairMyTestKeyPair.snk".)]

Поскольку одной из составляющих строгого имени общедоступного компоновочного блока является идентификатор версии, мы укажем его и для CarLibrary.dll. В файле AssemblyInfo.cs найдите другое свойство, имя которого AssemblyVersion. Изначально его значением является 1.0.*.

[assembly: AssemblyVersion("1.0.*")]

Напомним, что идентификатор версии .NET компонуется из четырех числовых значений. По умолчанию Visual Studio 2005 автоматически будет выполнять приращение номеров компоновки и варианта (что обозначается групповым символом "*") при каждой компиляции. Чтобы установить фиксированное значение идентификатора версии для компоновочного блока, замените групповой символ конкретными значениями номера компоновки и варианта.

// Формат номера версии;

// ‹главный›.‹дополнительный›.‹компоновка›.‹вариант›

// Для каждого элемента допустимы значения от 0 до 65535.

[.assembly: AssemblyVersion ("1.0.0.0")]

Теперь компилятор C# имеет всю информацию, необходимую для генерирования данных строгого имени (поскольку вы не указали уникального значения для параметра локализации с помощью атрибута [AssemblyCulture], будут "унаследованы" текущие параметры локализации вашей машины). Выполните компиляцию библиотеки программного кода CarLibrary и с помощью ildasm.exe откройте ее манифест. Вы увидите, что в нем теперь используется лексема .publickey, с помощью которой документируется информация открытого ключа, а с помощью.ver представлен номер версии, указанный атрибутом [AssemblyVersion] (рис. 11.18).

Рис. 11.18. Строго именованный компоновочный блок записывает открытый ключ в манифест

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.4.2 Уточнение* Имени Члена

Из книги C++ автора Хилл Мюррей

5.4.2 Уточнение* Имени Члена – * Иногда называется также квалификацией. (прим. перев.)Иногда полезно делать явное различие между именами члнов класса и прочими именами. Для этого используется операция ::, «разрешения области видимости»:class x (* int m; public: int readm() (* return x::m; *) void setm(int


5.4.2 Уточнение* Имени Члена

Из книги Блоги. Новая сфера влияния автора Попов Антон Валерьевич

5.4.2 Уточнение* Имени Члена – * Иногда называется также квалификацией. (прим. перев.)Иногда полезно делать явное различие между именами члнов класса и прочими именами. Для этого используется операция ::, «разрешения области видимости»:class x (* int m; public: int readm() (* return x::m; *) void setm(int


Комета имени Miller

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

Комета имени Miller Метки: темы блога, вирусный маркетинг, примерыВ 2006 году компания Miller решила приурочить к празднику Хеллоуин большую вечеринку, спонсором которой сама же и выступала.Что придумалиБыло решено подогреть интерес общественности и завладеть ее вниманием


3.3.2. Формат имени пакета

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

3.3.2. Формат имени пакета Еще со времен второй версии дистрибутива Red Hat принято файлы пакетов называть


Назначение строгого имени в Visual Studio 2005

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Назначение строгого имени в Visual Studio 2005 Перед тем как установить CarLibrary.dll в структуру GAC, заметим, что Visual Studio 2005 позволяет указать место расположения файла *.snk на странице Properties (Свойства) проекта (в Visual Studio 2005 такой подход оказывается более предпочтительным, поскольку при


База данных без имени

Из книги Цифровой журнал «Компьютерра» № 74 [20.06.2011 — 26.06.2011] автора Журнал «Компьютерра»

База данных без имени Много лет назад мы решили интегрировать мощную реляционную базу данных в каждую System/38. Затем эта идея перекочевала и в AS/400. Мы считали, что способность полнофункциональной системы управления базой данных (СУБД) эффективно и надежно обрабатывать


Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru

Из книги Цифровой журнал «Компьютерра» № 75 [27.06.2011 — 03.07.2011] автора Журнал «Компьютерра»

Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru Опубликовано 21 июня 2011 года В большинстве своём современные информационные системы не очень надёжны в эксплуатации, и корень этой проблемы скрывается в самой их архитектуре. Да,


Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru Опубликовано 23 июня 2011 года Продолжение. Первую часть читайте здесь. Микроядро Singularity и SIP Singularity — микроядерная система. Весь код небольшого и тщательно проверенного на


Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года

Из книги Сетевые средства Linux автора Смит Родерик В.

Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года Известная пословица гласит о благих намерениях, которыми облицована дорога в Пекло. Однако мало кто задумывается о философском инвертировании этого изречения. Частенько чрезвычайно адские штучки


12.14.3 Дополнение имени

Из книги C++. Сборник рецептов автора Диггинс Кристофер

12.14.3 Дополнение имени Имя, которое не заканчивается точкой, дополняется именем домена для зоны, например fishfood.com. Таким образом, в этом файле ns будет соответствовать


Получение доменного имени

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Получение доменного имени Задачи запуска сервера DNS и получения доменного имени тесно связаны между собой. Без доменного имени сервер DNS не сможет обслуживать внешних пользователей, так как ссылка на него должна присутствовать на вышестоящем сервере. На заметку Если вы


1.24. Включение строгого соответствия стандарту C++

Из книги Графология XXI века автора Щеголев Илья Владимирович

1.24. Включение строгого соответствия стандарту C++ ПроблемаВы хотите, чтобы компилятор принимал только программы, которые соответствуют стандарту языка С++.РешениеОпции командной строки для указания строгого соответствия стандарту C++ приведены в табл. 1.37. Инструкции для


Получение имени игрока

Из книги автора

Получение имени игрока Игрок вводит свое имя в текстовое поле формы highScore. Чтобы получить доступ к имени пользователя во время игры, необходимо иметь доступ к экземпляру формы HighScore. В классе HighScore надо создать свойство, с помощью которого можно получить введенное


Шаг 1. Ввод имени анализанта

Из книги автора

Шаг 1. Ввод имени анализанта Ввод имени анализанта не является обязательным. Соответствующее текстовое окно можно оставить и пустым. Оно появляется в дальнейшем в распечатке графологического