Поиск

Обзор сборок

В главе 16 сборки описаны как физические файлы, состоящие из нескольких РЕ-файлов (portable executable), генерируемых компилятором .NET. В контексте той главы это определение было приемлемым, но на самом деле сборки сложнее. Вот более полное определение: сборка является упаковкой, включающей декларацию (manifest), один или несколько модулей и (не обязательно) один или несколько ресурсов. Сборки позволяют семантически группировать функциональные единицы в единый файл для решения задач развертывания, контроля версий и сопровождения.

Все РЕ-файлы, работающие в исполняющей среде .NET, входят в ту или иную сборку. Компилируя приложение компилятором С#, вы на самом деле создаете сборку. Вы можете и не отдавать себе в этом отчета, если вы намеренно не пытались разместить несколько модулей в единой сборке или задействовать преимущества характерных для сборок функций, таких как управление версиями. Однако важно понимать, что каждый раз, компонуя ЕХЕ или DLL (с помощью переключателя /t:librаrу), вы создаете сборку с декларацией, которая предоставляет описание сборки для исполняющей среды .NET. Кроме того, вы можете создать модуль (применив переключатель /tmodule), который на самом деле является DLL (с расширением .netmodule) без декларации. Иначе говоря, хотя логически это все равно DLL, она не принадлежит к сборке и должна быть добавлена к сборке с помощью переключателя /odd-module при компиляции приложения или утилиты Assembly Generation. Ниже вы увидите, как это делается (см. раздел "Создание сборок").