При каждой загрузке любого модуля среда исполнения использует MVID, для проверки того, не был ли он уже загружен (MVID – уникален глобально). Если модуль оказывается уже подгруженным, то среда исполнения просто устанавливает необходимые связи с ним, избегая прямого обращения к его файлу, тем самым, существенно увеличивая скорость доступа к модулю.
Сборка. Сведения о версии
Синтаксис Номера версии сборки :
<основная версия >.< дополнительная версия> .<номер построения>.<редакция>
Например, номер версии "2.3.1354.0"
число "2" -код основной версии, "3" — дополнительный (уточняющий) номер версии, "1354" — номер построения, а "0" — номер редакции.
Синтаксис Информационной версии сборки :
Представляет собой строку, которая добавляет к сборке дополнительные данные и служит только для информации. Не используется на этапе выполнения. Можно задать любой текст. Если строка имеет формат отличный от формата номера версии сборки или если она содержит подстановочные знаки, при компиляции появится предупреждение.
Например: "Среда CLR версии 2.0" или "Элемент управления NET 3.5".
В Microsoft Windows эта информация отображается в элементе "Версия продукта" на вкладке "Версии" в диалоговом окне свойств файла
С целью управления версиями среда выполнения разделяет обычные сборки и сборки со строгими именами. Проверка версий производится только для сборок со строгими именами.
Закрытые и общие сборки
Сборка считается закрытой ( private deployment ), если она не предназначена для использования другими приложениями.
Помещают в базовый каталог приложения или в его подкаталог
Проблемы безопасности:
· Коллизия имен (возможен такой вариант что ваша сборка использует типы с теми же именами, что используются в разделяемой сборке).
· Вопрос совместимости.
Сборка является общей (глобальной, разделяемой), если предполагается ее использование с другими приложениями.
Разделяемые сбороки размещают в поддереве файловой системе
( GAC - global assembly cache) - глобальном кеше сборок.
С:\Windows\Assembly\GAC ).
Глобальный кэш сборок — это кэш команд компьютера, предоставляемый структурой .NET Framework и используемый для хранения сборок, к которым требуется предоставить общий доступ для нескольких приложений на компьютере.
6.Способы развертывания сборки в глобальном кэше сборок:
· Использование программы установки, предназначенной для работы с глобальным кэшем сборок. Данный подход является предпочтительным при установке сборок в глобальный кэш.
· Использование инструмента разработчика под названием средство глобального кэша сборок (Gacutil.exe), предоставляемого в SDK (пакет средств разработки программного обеспечения) для Windows (C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gasutil.exe)
· Использовать Windows Explorer для перетаскивания сборок в кэш.
Строгое имя состоит из удостоверения сборки, включающего ее простое текстовое имя, номер версии и сведения о языке и региональных параметрах (если они имеются), а также открытый ключ и цифровую подпись
Пример идентификации файла сборки
"MyTypes, Verslon=1.0.8123.О, Culture=neutral, PublicKeyToken=b77a5c561934e089" "MyTypes, Version=1.0.8123.О, Culture="en-US", PublicKeyToken=b77a5c561934e089" "MyTypes, Version=2.0.1234.0, Culture=neutral, PublicKeyToken=b77a5c561934e089-T "MyTypes, Version=1.0.8123.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" |
Формирование строгого имени
строгое имя состоит из набора взаимосвязанных данных, большая часть из которых указывается с помощью перечисленных ниже атрибутов уровня сборки:
· Дружественное имя сборки (которое представляет собой имя сборки без файлового расширения)
· Номер версии сборки (назначается в атрибуте [AssemblyVersion]).
· Значение открытого ключа (назначается в атрибуте [AssemblyKeyFile]).
· Значение, обозначающее культуру, которое является необязательным и может предоставляться для локализации приложения (присваивается в атрибуте [AssemblyCulture]).
· Вставляемая цифровая подпись, созданная с использованием хеш-кода по содержимому сборки и значения секретного ключа.
Утилита для генерации открытого и секретного ключей:
Sn.exe
Дата: 2019-02-25, просмотров: 210.