Chapter 17. Assemblies and Versioning
The basic
unit of .NET programming is the
assembly
.
An assembly is a collection of files that appears to the user to be a
single dynamic link library (DLL) or
executable (EXE). DLLs are collections of
classes and methods that are linked into your running program only
when they are needed.
Assemblies are the .NET unit of reuse, versioning, security, and deployment. This chapter discusses assemblies in detail, including the architecture and contents of assemblies, private assemblies, and shared assemblies.
In addition to the object code for the application, assemblies contain resources such as .gif files, type definitions for each class you define, as well as metadata about the code and data. Metadata is explored in detail in Chapter 18.
PE Files
On disk, assemblies are
Portable Executable (PE)
files. PE files are not new. The format of a .NET PE file is exactly
the same as a normal Windows PE file. PE files are implemented as
DLLs or EXEs. Logically (as opposed to physically), assemblies
consist of one or more
modules
.
Note, however, that an assembly must have exactly one entry
point -- DLLMain
, WinMain
,
or Main
. DLLMain
is the entry
point for DLLs, WinMain
is the entry point for
Windows applications, and Main
is the entry point
for DOS and Console applications.
Modules are created as DLLs and are the constituent pieces of assemblies. Standing alone, modules cannot be executed; they must be combined into assemblies to be useful.
Deploy and ...
Get Programming C#, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.