An assembly is the physical unit of code in .NET. Source files compile into IL, the compiler bundles that IL together with metadata and a manifest, and what comes out is either a .dll or an .exe on disk. That file is the assembly: it's what the runtime loads, what the version system tracks, what a project references when it depends on another project, and what eventually ships when you deploy. This chapter covers what an assembly contains, how .dll and .exe differ in modern .NET, how to build and reference assemblies with the dotnet CLI, how versioning works, and how to inspect or load assemblies at runtime.