Un fichier d'assemblage .NET, typiquement avec l'extension '.dll' (Dynamic Link Library - Bibliothèque de liens dynamiques) ou '.exe' (Executable - Exécutable), est une unité de code compilée écrite dans un langage .NET tel que C#, VB.NET ou F#. Il contient du code Common Intermediate Language (CIL), également connu sous le nom de MSIL (Microsoft Intermediate Language), des métadonnées décrivant le code, et des ressources comme des images ou des fichiers de configuration. Les assemblages sont les blocs de construction fondamentaux des applications .NET. Ils fournissent un moyen d'empaqueter et de déployer du code, de gérer le contrôle de version (versioning) et d'appliquer des limites de sécurité. Le runtime .NET, le Common Language Runtime (CLR), exécute le code CIL contenu dans l'assemblage. Les assemblages peuvent être soit des applications exécutables (.exe), soit des bibliothèques (.dll) fournissant du code réutilisable pour d'autres applications. Ils sont auto-descriptifs, ce qui signifie qu'ils contiennent toutes les informations nécessaires au CLR pour les charger et les exécuter, y compris les dépendances envers d'autres assemblages. Les métadonnées au sein de l'assemblage, connues sous le nom de manifeste d'assemblage (assembly manifest), spécifient le nom, la version, la culture, la clé publique et les dépendances de l'assemblage. Cela permet au CLR de résoudre les dépendances et de s'assurer que les versions correctes des assemblages sont chargées. Les assemblages sont cruciaux pour créer des applications .NET modulaires, maintenables et évolutives.