Создание сборок
Однофайловую или многофайловую сборку можно создать с помощью интегрированной среды разработки, например Visual Studio, либо с помощью компиляторов и средств, доступных в Windows SDK. Простейшая сборка представляет собой один файл, имеющий простое имя и загружаемый в единственный домен приложения. На эту сборку нельзя ссылаться из других сборок, находящихся вне папки приложения; кроме того, к ней неприменим механизм проверки версий. Для удаления приложения, состоящего из сборки, достаточно просто удалить папку, в которой оно располагается. Для большинства разработчиков сборки с такими возможностями достаточно для развертывания приложения.
Многофайловую сборку можно создать на основе нескольких модулей кода и файлов ресурсов. Кроме того, можно создать сборку, которая будет совместно использоваться несколькими приложениями. Совместно используемая сборка должна иметь строгое имя и должна быть развернута в глобальном кэше сборок.
Существует несколько способов объединения модулей кода и ресурсов в сборки; способ зависит от следующих факторов.
Управление версиями
Объединение модулей, имеющих одни и те же сведения о версии.
Развертывание
Объединение модулей кода и ресурсов, поддерживающих данную модель развертывания.
Повторное использование
Объединение модулей, если они могут логически использоваться совместно для некоторых целей. Например, сборка, состоящая из типов и классов, редко используемых для сопровождения программы, может быть помещена в ту же самую сборку. Кроме того, типы, предназначенные для совместного использования несколькими приложениями, могут быть объединены в сборку, которая должна быть подписана строгим именем.
Безопасность
Объединение модулей, содержащих типы, которым требуются одни и те же разрешения безопасности.
Scoping
Объединение модулей, содержащих типы, область видимости которых должна быть ограничена этой же сборкой.
Особое внимание нужно уделить предоставлению доступа к сборкам среды CLR из неуправляемых COM-приложений. Дополнительные сведения о работе с неуправляемым кодом см. в разделе Предоставление COM-клиентам доступа к компонентам .NET Framework.