Создание строгого имени для 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. Строго именованный компоновочный блок записывает открытый ключ в манифест
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
База данных без имени
База данных без имени Много лет назад мы решили интегрировать мощную реляционную базу данных в каждую System/38. Затем эта идея перекочевала и в AS/400. Мы считали, что способность полнофункциональной системы управления базой данных (СУБД) эффективно и надежно обрабатывать
Получение доменного имени
Получение доменного имени Задачи запуска сервера DNS и получения доменного имени тесно связаны между собой. Без доменного имени сервер DNS не сможет обслуживать внешних пользователей, так как ссылка на него должна присутствовать на вышестоящем сервере. На заметку Если вы
Комета имени Miller
Комета имени Miller Метки: темы блога, вирусный маркетинг, примерыВ 2006 году компания Miller решила приурочить к празднику Хеллоуин большую вечеринку, спонсором которой сама же и выступала.Что придумалиБыло решено подогреть интерес общественности и завладеть ее вниманием
12.14.3 Дополнение имени
12.14.3 Дополнение имени Имя, которое не заканчивается точкой, дополняется именем домена для зоны, например fishfood.com. Таким образом, в этом файле ns будет соответствовать
3.3.2. Формат имени пакета
3.3.2. Формат имени пакета Еще со времен второй версии дистрибутива Red Hat принято файлы пакетов называть
1.24. Включение строгого соответствия стандарту C++
1.24. Включение строгого соответствия стандарту C++ ПроблемаВы хотите, чтобы компилятор принимал только программы, которые соответствуют стандарту языка С++.РешениеОпции командной строки для указания строгого соответствия стандарту C++ приведены в табл. 1.37. Инструкции для
Назначение строгого имени в Visual Studio 2005
Назначение строгого имени в Visual Studio 2005 Перед тем как установить CarLibrary.dll в структуру GAC, заметим, что Visual Studio 2005 позволяет указать место расположения файла *.snk на странице Properties (Свойства) проекта (в Visual Studio 2005 такой подход оказывается более предпочтительным, поскольку при
Получение имени игрока
Получение имени игрока Игрок вводит свое имя в текстовое поле формы highScore. Чтобы получить доступ к имени пользователя во время игры, необходимо иметь доступ к экземпляру формы HighScore. В классе HighScore надо создать свойство, с помощью которого можно получить введенное
5.4.2 Уточнение* Имени Члена
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
Шаг 1. Ввод имени анализанта
Шаг 1. Ввод имени анализанта Ввод имени анализанта не является обязательным. Соответствующее текстовое окно можно оставить и пустым. Оно появляется в дальнейшем в распечатке графологического
Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года
Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года Известная пословица гласит о благих намерениях, которыми облицована дорога в Пекло. Однако мало кто задумывается о философском инвертировании этого изречения. Частенько чрезвычайно адские штучки
Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru
Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru Опубликовано 21 июня 2011 года В большинстве своём современные информационные системы не очень надёжны в эксплуатации, и корень этой проблемы скрывается в самой их архитектуре. Да,
Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru
Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru Опубликовано 23 июня 2011 года Продолжение. Первую часть читайте здесь. Микроядро Singularity и SIP Singularity — микроядерная система. Весь код небольшого и тщательно проверенного на