.Net Assembly Manifest
An Assembly Manifest serves as a crucial file that encompasses Metadata pertaining to .NET Assemblies. It assumes the role of a comprehensive repository, containing a diverse array of data that effectively elucidates the interrelationships among the various elements constituting the Assembly. The Assembly Manifest diligently outlines the dependencies and associations existing between the components within the Assembly, while also providing essential information concerning versioning, scope, and the requisite security permissions necessary for the Assembly's execution.
Portable Executable (PE) file
The Assembly Manifest is typically stored within a Portable Executable (PE) file, accompanied by Microsoft Intermediate Language (MSIL) code. It effectively encapsulates the essence of the Assembly, harmonizing its constituent parts and providing a holistic view of its structure and dependencies. By utilizing assembly attributes in your code, it becomes possible to supplement or modify certain details within the Assembly Manifest, allowing for fine-grained control over its content and behavior.
The Assembly Manifest can find its abode within a PE file, which can be an executable (.exe) or a dynamic-link library (.dll), housing both MSIL code and the accompanying manifest information. Alternatively, it can also reside within a standalone PE file solely dedicated to storing the Assembly manifest, devoid of any executable code. For those seeking a glimpse into the intricacies of the manifest information contained within a managed DLL, the ILDasm tool proves invaluable, offering the capability to inspect and explore the manifold details encapsulated within the Assembly Manifest.