Manifest Maintains the information about the assemblies like version, name locale and an optional strong name that uniquely identifying the assembly. This manifest information is used by the CLR. The manifest also contains the security demands to verify this assembly. It also contains the names and hashes of all the files that make up the assembly. The .NET assembly manifest contains a cryptographic hash of different modules in the assembly. And when the assembly is loaded, the CLR recalculates the hash of the modules at hand, and compares it with the embeded hash. If the hash generated at runtime is different from that found in the manifest, .NET refuses to load the assembly and throws an exception.
What is Assembly manifest?
– Assembly Manifest describes the relationship and dependencies of the components in the assembly.
– The versioning information, scope information and the security permissions are required by the assembly.
– An Assembly data like version, scope, security information (strong name),etc is stored in manifest.
– The assembly manifest also contains a reference to the resource and classes.
– The assembly manifest of an assembly is stored in either an .exe or a .dll with Microsoft intermediate language (MSIL) code.
– This file contains metadata about .NET assemblies.
– It contains a collection of data that describes how the elements in the assembly relate to each other.
Where is it stored?
– It can be stored in Portable Executable(PE) file (.exe or .dll) with Microsoft Intermediate Language(MSIL) code.
– You can add or change some information in the Assembly Manifest by using assembly attributes in your code.
– You can view the manifest information for any managed DLL using ILDasm.
It performs following functions:
– It enumerates the files that make up the assembly.
– It provides a level of indirection between consumers of the assembly and the assemblies implementation details.
– It renders the assembly self-describing.
– It enumerates other assemblies on which the assembly depends.
Ildasm.exe (IL Disassembler)
The IL Disassembler is a companion tool to the IL Assembler (Ilasm.exe). Ildasm.exe takes a portable executable (PE) file that contains intermediate language (IL) code and creates a text file suitable as input to Ilasm.exe more…
Is it possible to run all .exe files (i.e. msword.exe, netbeans.exe) with ILDASM and ILASM?