By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,137 Members | 2,282 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,137 IT Pros & Developers. It's quick & easy.

METADATA and MANIFEST

P: n/a
What is the difference between METADATA and MANIFEST
and where do they get stored?

Thank you
Jul 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
I have replied the same at http://www.mail-
archive.com/bd*****@groups.msn.com/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

Jul 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.