Manifest
is nothing but a simple text file used to store metadata information of
different .NET assemblies. Manifest file can be saved as a stand alone
file of type PE. It can also be stored as an exe or as a dll file containing
intermediate language code.
Following metadata information of assembly are stored in manifest:
" Assembly
Name - Name of the assembly.
" Assembly Version - Includes major version number, minor
version number, revision and also the build number.
" Culture - This attribute contains information about the
language or culture which is supported by this assembly. If this attribute
has a value then the assembly becomes satellite assembly.
" Public Key Token - This attribute refers to the strong name
associated with the assembly.
" File List - Names of all files belonging to the assembly
will be listed.
" Type Reference - Type reference of all files contained in
the assembly are mentioned. It includes implementation along with the
declaration.
" Referenced Assembly - If your assembly is referencing any
other assemblies then information about those referenced assemblies including
the referenced assembly name, metadata information about the referenced
assembly and the strong name if any will be available.
Sample MSIL
Code representing the manifest content of a particular assembly is shown
below:
.assembly extern System {
.publickeytoken = (B8 6A 4C 10 25 39 65 42)
.ver 1:0:6000:0
}
Note that
the versioning information will be available only for public assemblies
and not for private assemblies. This is because private assemblies will
be stored in individual folders and not in global assembly cache.