Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_Prakticheskie_raboty_OPI.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
9.91 Mб
Скачать

1 Общие сведения о сборках

Сборка обладает следующими свойствами.

  • Содержит код, выполняемый средой CLR. При отсутствии манифеста сборки код на промежуточном языке MSIL, находящийся в переносимом исполняемом (PE) файле, выполняться не будет. Каждая сборка может иметь только одну точку входа (т. е. DllMain , WinMain или Main ).

  • Создает границу безопасности. Сборка представляет собой единицу, для которой запрашиваются и предоставляются разрешения.

  • Создает границу типов. Каждое удостоверение типа включает имя сборки, в которой располагается данный тип. Тип с именем MyType, загруженный в области действия одной сборки, не совпадает с типом MyType, загруженным в области действия другой сборки.

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

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

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

  • Сборка является единицей, для которой поддерживается параллельное выполнение.

Сборки могут быть:

  • статическими – такие, которые могут включать в себя типы платформы .NET Framework (интерфейсы и классы), а также ресурсы сборки (рисунки, JPEG-файлы, файлы ресурсов и т.д.). Статические сборки хранятся на диске в виде переносимых исполняемых (PE) файлов.

  • динамическими - которые запускаются непосредственно из памяти и не сохраняются на диск перед выполнением, а только после.

2 Содержимое сборок

В общем случае статическая сборка может состоять из четырех элементов.

  • манифест сборки, который содержит метаданные сборки.

  • метаданные типов.

  • реализующий типы код на промежуточном языке msil.

  • набор ресурсов.

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

Существует несколько способов группировки этих элементов в сборку. Причем сборка может состоять из одного или нескольких файлов.

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

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

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

Манифест сборки может храниться в PE-файле (EXE или DLL) с кодом MSIL или же в отдельном PE-файле, содержащем только данные манифеста.

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

Манифест сборки предназначен для следующих задач:

  • перечисление файлов, составляющих сборку;

  • сопоставление ссылок на типы и ресурсы сборки с файлами, содержащими объявления и реализации этих типов и ресурсов;

  • перечисление других сборок, от которых зависит эта сборка;

  • обеспечение косвенного обращения пользователей сборки к подробностям ее реализации;

  • предоставление собственного описания сборки;

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

Таблица 1.2 – Данные манифеста сборки

Данные

Описание

Имя сборки

Текстовая строка, задающая имя сборки.

Номер версии

Основной и дополнительный номера версии, номер редакции и номер построения. Среда CLR использует их для применения политики управления версиями.

Язык и региональные параметры

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

Данные о строгом имени

Открытый ключ издателя, если для сборки задано строгое имя.

Список всех файлов сборки

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

Сведения о ссылках на типы

Сведения, используемые средой выполнения для сопоставления ссылок на типы с файлами, содержащими их объявления и реализации. Это касается типов, которые экспортируются сборкой.

Сведения о ссылках на сборки

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

С помощью задания атрибутов сборки в коде можно добавить или изменить некоторые данные в манифесте сборки. Можно изменить данные о версии и информационные атрибуты, включая сведения о товарном знаке, авторском праве, продукте, компании и информационной версии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]