Un fichier d'assembly .NET, généralement doté de l'extension '.dll' (Dynamic Link Library) ou '.exe' (Executable), est une unité de code compilée écrite dans un langage .NET tel que C#, VB.NET ou F#. Il contient du code CIL (Common Intermediate Language), également connu sous le nom de MSIL (Microsoft Intermediate Language), des métadonnées décrivant le code, ainsi que des ressources telles que des images ou des fichiers de configuration. Les assemblies constituent les blocs de construction fondamentaux des applications .NET. Ils permettent de packager et de déployer du code, de gérer le versionnage et d'appliquer des limites de sécurité. Le runtime .NET, appelé Common Language Runtime (CLR), exécute le code CIL contenu dans l'assembly. Les assemblies peuvent être des applications exécutables (.exe) ou 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 assemblies. Les métadonnées au sein de l'assembly, appelées manifeste d'assembly, spécifient le nom, la version, la culture, la clé publique et les dépendances de l'assembly. Cela permet au CLR de résoudre les dépendances et de garantir que les versions correctes des assemblies sont chargées. Les assemblies sont essentiels pour créer des applications .NET modulaires, maintenables et évolutives.