Assembly (programming)

In computer programming, an assembly is a runtime unit consisting of types (such as classes and interfaces) and other resources. All types in an assembly share the same version number. An assembly typically corresponds to a single file (such as a .dll or .exe), but can consist of multiple files linked together by a manifest that serves as a table of contents describing the assembly's metadata and structure.

While an assembly often contains types from a single namespace and serves one program, it can span multiple namespaces. Conversely, a single namespace can be distributed across multiple assemblies, providing flexibility in code organization and deployment.

In C#, an assembly is the smallest deployment unit used, and is a component in .NET. In Java, it is a JAR file.