O'Reilly logo

C# in a Nutshell by Peter Drayton, Ted Neward, Ben Albahari

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Assemblies and Modules

The simplest assembly contains an assembly manifest and a single module containing the application’s types, packaged as an EXE with a Main entry point. More complex assemblies may be composed of multiple modules (PE files), separate resource files, manifest, etc.

The element that defines the presence of an assembly is termed the assembly manifest. The assembly manifest is not a physical construct, but rather a set of metadata that can either be included in one of the existing PE files in the assembly, or can live in a standalone PE file.

An assembly may also contain multiple modules. This technique can increase the performance of applications that use assemblies that loaded over the network, since the CLR only loads modules as the types contained within them are needed. In addition, each module can be written in a different language, allowing a mixture of C#, VB.NET, and raw MSIL. Although not common, a single module could also be included in several different assemblies. When using multimodule assemblies, the convention is for the module PE files to have a .netmodule extension.

Finally, an assembly may contain a set of resources, which can either be kept in standalone files or included in one of the PE files in the assembly.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required