Сборки в среде CLR

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

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

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

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

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

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

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

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

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

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

Существует несколько способов создания сборок. Можно использовать средства разработки, такие как Visual Studio 2005, которые раньше использовались для создания DLL- или EXE-файлов. Чтобы создать сборки с использованием модулей, созданных в других средствах разработки, можно воспользоваться средствами Пакет средств разработки программного обеспечения (SDK) для Windows. Для создания динамических сборок также можно использовать интерфейсы CLR такие, как Reflection.Emit.

Связанные разделы

Заголовок

Описание

Преимущества сборок

Описание того, как использование сборок помогает решать проблемы управления версиями и конфликты DLL.

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

Описание составляющих элементов сборки.

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

Описание данных в манифесте сборки и их хранения в сборках.

глобальный кэш сборок

Описание глобального кэша сборок и его использования со сборками.

Сборки со строгими именами

Описание характеристик сборок со строгими именами.

Вопросы безопасности сборок

Обсуждение вопросов безопасности сборок.

Управление версиями сборок

Общие сведения о политике управления версиями платформы .NET Framework.

Размещение сборок

Обсуждение вопросов размещения сборок.

сборки и параллельное выполнение

Общие сведения об использовании нескольких версий среды выполнения или об одновременном использовании нескольких версий сборок.

Программирование с использованием сборок

Описание способов создания, подписи и установки атрибутов сборок.

Предоставление динамических методов и сборок

Описание способов создания динамических сборок.

Обнаружение сборок в среде выполнения

Описание способов разрешения платформой .NET Framework ссылок на сборки во время выполнения.

Ссылки

System.Reflection.Assembly