Eine .NET-Assembly-Datei, die typischerweise die Dateiendung '.dll' (Dynamic Link Library) oder '.exe' (Executable) trägt, ist eine kompilierte Codeeinheit, die in einer .NET-Sprache wie C#, VB.NET oder F# geschrieben wurde. Sie enthält Common Intermediate Language (CIL)-Code, auch bekannt als MSIL (Microsoft Intermediate Language), Metadaten zur Beschreibung des Codes sowie Ressourcen wie Bilder oder Konfigurationsdateien. Assemblies sind die grundlegenden Bausteine von .NET-Anwendungen. Sie bieten eine Möglichkeit, Code zu paketieren und bereitzustellen, die Versionierung zu verwalten und Sicherheitsgrenzen durchzusetzen. Die .NET-Laufzeitumgebung, die Common Language Runtime (CLR), führt den CIL-Code innerhalb der Assembly aus. Assemblies können entweder ausführbare Anwendungen (.exe) oder Bibliotheken (.dll) sein, die wiederverwendbaren Code für andere Anwendungen bereitstellen. Sie sind selbstbeschreibend, was bedeutet, dass sie alle Informationen enthalten, die die CLR zum Laden und Ausführen benötigt, einschließlich Abhängigkeiten von anderen Assemblies. Die Metadaten innerhalb der Assembly, bekannt als Assembly-Manifest, spezifizieren den Namen, die Version, die Kultur, den öffentlichen Schlüssel und die Abhängigkeiten der Assembly. Dies ermöglicht es der CLR, Abhängigkeiten aufzulösen und sicherzustellen, dass die korrekten Versionen der Assemblies geladen werden. Assemblies sind entscheidend für die Erstellung modularer, wartbarer und skalierbarer .NET-Anwendungen.