Assembly (programming)
In computer programming, an assembly is a runtime unit consisting of types and other resources. All types in an assembly share the same version number. An assembly typically corresponds to a single file, 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.
Creation of an assembly
Every compilation creates either an assembly or a module in C#. It is possible to add other modules with the assembly linker. A speciality of Java is to create a*.class file for each class, which is not the case in C#. The creation can be activated by compiler switches, like csc /addmodule:Y.netmodule A.cs that yields a new A.exe with Y added to this assembly.