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

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

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

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

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

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

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

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

Сборка из одного файла

MyAssembly.dll

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

На следующем рисунке разработчик гипотетического приложения выделил в отдельный модуль некоторый вспомогательный код, а ресурс большого объема (BMP-рисунок) оставил в первоначальном файле. При использовании .NET Framework загрузка файла выполняется только при ссылке; процесс загрузки кода оптимизируется путем размещения в отдельном файле кода, ссылки на который используются редко.

Сборка из нескольких файлов

MyAssembly.dll

ПримечаниеПримечание

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

На этом рисунке все три принадлежащих сборке файла описаны в манифесте сборки, который находится в файле MyAssembly.dll. Для файловой системы они являются тремя различными файлами. Следует иметь в виду, что файл Util.netmodule был скомпилирован как модуль, поскольку он не содержит данных о сборке. При создании сборки ее манифест был добавлен в файл MyAssembly.dll, что указывает на связь сборки с файлами Util. netmodule и Graphic.bmp.

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

См. также

Основные понятия

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

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

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