METADATA and MANIFEST

S

Santhu

What is the difference between METADATA and MANIFEST
and where do they get stored?

Thank you
 
D

Dolly

I have replied the same at http://www.mail-
archive.com/[email protected]/msg04438.html


This is how I understand it. An assembly contains a
Manifest. manifest contains the
metadata + some additional tables. Metadata is data about
itself whereas manifest
includes references to outside classes, dependencies on
other assemblies and
information (tables) about that along with the
metadata.Also remember Metadata is
contained in assembly and modules, manifest is present in
assemblies. An Assembly Manifest is
nothing but some extra tables in the Metadata section of
the PE file which contains
the assembly's identity, culture, files, and publicly
exported types, and all of the
files (modules etc) that comprise the assembly. It also
references other referenced
assemblies on which the assembly is dependent.
This is the main difference between a assembly and a
module. A assembly contains a
assembly manifest while a module does not contain a
assembly manifest. One point to be
noted here is that both assemblies and modules contain
Metadata which describes them.
It is the self-describing assembly manifest which gives
applications on the .NET
Platform independence from the registry.
In layman's terms say if you have a application comprising
of a assembly named
Assem.exe and a module named Mod.dll. Then in the assembly
manifest which will be
stored within the PE Assem.exe will not only contain
metadata about the classes,
methods etc contained within the Assem.exe file but also
it will contain references to
the classes, methods etc exported in the Mod.dll file.
While the module Mod.dll will
only contain metadata describing itself.

You can store the assembly manifest within the executables
or libraries created with
the /t:exe, /t:winexe and /t:library switches in the C#
compiler. Or you can create a
separate PE file which will just contain the assembly
manifest. Although there is no
separate compiler option to create a assembly.
The /t:exe, /t:winexe and /t:library
switches always compile a single PE which contains the
assembly manifest."

HTH, Dolly
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top