Ho letto CLR con C# 3.0 e ho riflettuto su Assemblies, Modules and Headers tuttavia le cose si sono complicate. Questo è quello che ho capito, ma se sarebbe bello se qualcuno può chiarire le cose po 'di più:Moduli, gruppi, intestazioni in CLR
moduli sono il risultato di csc.exe che contiene il codice IL e tabelle di metadati. tabelle di metadati contiene tre tabelle differenti che sono: "TypeRef, ModuleRef, MemberRef, etc"
- Tabelle definizione come "ModuleDef, TypeDef, PropertyDef, MethodDef, EventDef, FieldDef" Tabelle
- di riferimento come ad esempio
- Tabelle Manifest **
Assemblee sono contenitori che contengono molti moduli così come le risorse come immagini, documenti, PDF, ecc
file PE- che sta per Portable Executable sono file possono essere .EXE o .DLL. Questi file hanno intestazioni PE32 o PE32 +, intestazioni CLR, metadati, codice IL.
I libri dice Assemblea è un contenitore costituito da moduli e lo dice anche il modulo gestito è
Modulo Gestito:
Un riuscito modulo è un 32 bit portatile standard di Microsoft Windows File eseguibile (PE32) o un file eseguibile portatile Windows standard a 64 bit (PE32 +) che richiede l'esecuzione del CLR.
Richter, Jeffrey (2010-02-05). CLR via C# (posizioni Kindle 696-697). OReilly Media - A. Edizione Kindle.
Definizione dell'Assemblea:
Un assieme è un raggruppamento logico di uno o più moduli o risorsa file.
Richter, Jeffrey (2010-02-05). CLR via C# (posizioni Kindle 766-767). OReilly Media - A. Edizione Kindle.
così sembra che il modulo Gestito sono in realtà parte dell'Assemblea nell'immagine tratta dal libro stesso.
intestazioni PE32 appartengono Assemblee, comunque autore dice anche che appartiene al Managed moduli, ecc
Qual è la separazione qui? Perché ha usato il modulo e gli assiemi intercambiabili anche se pensavano che fossero abbastanza separati.
Un file PE gestito ha quattro parti principali: l'header PE32 (+), l'intestazione CLR , i metadati, e IL.L'intestazione PE32 (+) è l'informazione standard che Windows si aspetta. L'intestazione CLR è un piccolo blocco di informazioni specifico per moduli che richiedono il CLR (moduli gestiti ).
Richter, Jeffrey (2010-02-05). CLR via C# (Posizioni Kindle 1628-1629). OReilly Media - A. Edizione Kindle.
Anche l'immagine mostra chiaramente che i Moduli hanno solo Metadata non PE32 (+), intestazioni CLR, ecc. Pensi che Manifest e Metadata possano essere usati in modo intercambiabile
E potresti anche spiegare ** Tabelle manifest nei Moduli?
Collegamento piacevole. Grazie. – Tarik