Eine .NET-Assembly-Datei, typischerweise mit der Erweiterung „.dll“ (Dynamic Link Library) oder „.exe“ (Executable), 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, die den Code beschreiben, sowie Ressourcen wie Bilder oder Konfigurationsdateien. Assemblies sind die fundamentalen Bausteine von .NET-Anwendungen. Sie bieten eine Methode zur Paketierung und Bereitstellung von Code, zur Verwaltung der Versionierung und zur Durchsetzung von Sicherheitsgrenzen. 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 selbstdokumentierend, 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 Assemblymanifest, geben den Namen, die Version, die Kultur, den öffentlichen Schlüssel und die Abhängigkeiten der Assembly an. Dies ermöglicht es der CLR, Abhängigkeiten aufzulösen und sicherzustellen, dass die korrekten Versionen von Assemblies geladen werden. Assemblies sind entscheidend für die Erstellung modularer, wartbarer und skalierbarer .NET-Anwendungen.