Сборка (assembly) - базовый строительный блок приложения в .NET Framework и представляет собой двоичный файл, который содержит логическую группу из одного или нескольких управляемых модулей или файлов ресурсов, таких как растровые изображения и строки. Сборка содержит в себе:
- номер версии;
- метаданные;
- инструкции IL.
Когда компилятор платформы .NET создает .exe или .dll модуль, содержимое этого модуля является сборкой. Таким образом, сборка может быть либо исполняемым приложением (при этом она размещается в файле с расширением .exe), либо библиотечным модулем (в файле с расширением .dll). При этом ничего общего с исполняемыми приложениями и библиотечными модулями старого образца сборка не имеет.
Сборка - это полностью самодостаточный и, скорее, логический, нежели физический элемент. Это значит, что он может быть сохранен в более чем одном файле (хотя динамические сборки хранятся в памяти, а вовсе не в файлах). Если сборка хранится в более чем одном файле, то должны быть один главный файл, содержащий точку входа и описывающий остальные файлы.
Следует отметить, что одна и та же структура сборки используется как для исполняемого кода, так и для кода библиотек. Единственное реальное отличие исполняемой сборки заключается в том, что она содержит главную точку входа программ, тогда как библиотечная сборка - нет.
Управляемые модули в составе сборок исполняются в среде времени выполнения CLR.
Схема получения и использования сборки показана на рисунке 2.1.

Рисунок 2.1 - Схема получения и использования сборки