Un archivo de Ensamblaje .NET, típicamente con la extensión '.dll' (Dynamic Link Library - Biblioteca de Vínculos Dinámicos) o '.exe' (Executable - Ejecutable), es una unidad de código compilado escrita en un lenguaje .NET como C#, VB.NET o F#. Contiene código CIL (Common Intermediate Language - Lenguaje Intermedio Común), también conocido como MSIL (Microsoft Intermediate Language - Lenguaje Intermedio de Microsoft), metadatos que describen el código y recursos como imágenes o archivos de configuración. Los ensamblajes son los bloques de construcción fundamentales de las aplicaciones .NET. Proporcionan una forma de empaquetar y desplegar código, gestionar el control de versiones y aplicar límites de seguridad. El entorno de ejecución .NET, el CLR (Common Language Runtime - Tiempo de Ejecución del Lenguaje Común), ejecuta el código CIL dentro del ensamblaje. Los ensamblajes pueden ser aplicaciones ejecutables (.exe) o bibliotecas (.dll) que proporcionan código reutilizable para otras aplicaciones. Son autodescriptivos, lo que significa que contienen toda la información necesaria para que el CLR los cargue y ejecute, incluidas las dependencias de otros ensamblajes. Los metadatos dentro del ensamblaje, conocidos como manifiesto del ensamblaje, especifican el nombre, la versión, la cultura, la clave pública y las dependencias del ensamblaje. Esto permite al CLR resolver dependencias y asegurar que se carguen las versiones correctas de los ensamblajes. Los ensamblajes son cruciales para crear aplicaciones .NET modulares, mantenibles y escalables.