Manifest
Każdy podzespół
[[C_sharp/assembly]] musi zawierać
Manifest. Jest to zbiór tabel metadanych ([[C_sharp/Metadane]]) które zawierają listy nazw wszystkich plików w podzespole, referencje do innych podzespołów zewnętrznych oraz niezbędne informacje potrzebne do identyfikacji samego siebie, chociażby. nazwa i numer wersji. Podzespoły z silnymi nazwami
strongly name assemblies posiadają dodatkowo w manifescie unikatowe sygnatury cyfrowe.
Podczas uruchamiania aplikacji, środowisko wykonawcze [[C_sharp/CLR]] w pierwszym kroku otwiera własnie manifest.
Manifest można także samemu przeglądać. Służy do tego narzędzie ILDasm. Po wybraniu pliku, należy dwukrotnie kliknąć w drzewie na gałązkę "M A N I F E S T".
Przykładowy Manifest:
```csharp
// Metadata version: v2.0.50727
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}
.assembly Lista
{
.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00 ) // ...1.0.0.0..
.custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 61 63 64 32 36 31 64 63 2D 34 62 35 38 // ..$acd261dc-4b58
// [... i tak dalej, dużo odwołań... ]
}
.module Lista.exe
.imagebase 0x00400000
.file alignment 0x00001000
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x010C0000
```
Co to kurki nędzy ma być?