Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>In brief, the two are completely separate concepts with unfortunately similar names.</p> <p>An <strong>application manifest</strong> is an XML file embedded in, or distributed along with, a PE binary (managed or native), giving instructions to the OS loader about things such as SxS assembly dependencies, required elevation, OS version compatibility, etc.</p> <p>An <strong>assembly manifest</strong> is a section in a CLI assembly, stating the managed assembly's dependencies, the files making up the assembly, the assembly's public key, type exports, CLR flags, and so on. You can inspect an assembly's manifest using ILDASM.exe or most .NET decompilers.</p> <p>A relevant excerpt from ECMA 335 (the CLI specification), section I.9.6:</p> <blockquote> <p>Manifests: Every assembly has a manifest that declares which files make up the assembly, what types are exported, and what other assemblies are required to resolve type references within the assembly. Just as CLI components are self-describing via metadata in the CLI component, so are assemblies self-describing via their manifests. When a single file makes up an assembly it contains both the metadata describing the types defined in the assembly and the metadata describing the assembly itself. When an assembly contains more than one file with metadata, each of the files describes the types defined in the file, if any, and one of these files also contains the metadata describing the assembly (including the names of the other files, their cryptographic hashes, and the types they export outside of the assembly).</p> </blockquote> <p>Note that:</p> <ul> <li>all managed assemblies <strong>must have</strong> assembly manifests, executables and libraries alike;</li> <li>all native binaries, executables and libraries, <strong>may have</strong> application manifests.</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload