2016-05-03 12 views
0

Wenn ich dumpbin \ clrheader zu einer Baugruppe, habe ich folgenden Inhalt- Da ich unter .net4.5, wie die CLR-Version wäre 2.05 erfüllt?CLR Runtime-Version von CLR-Header

Dump der Datei SampleApp.exe

Dateityp: ausführbares Image

clr Rubrik:

  48 cb 
     2.05 runtime version 
     2080 [  668] RVA [size] of MetaData Directory 
     20003 flags 
       IL Only 
       32-Bit Required 
       32-Bit Preferred 
    6000001 entry point token 
      0 [  0] RVA [size] of Resources Directory 
      0 [  0] RVA [size] of StrongNameSignature Directory 
      0 [  0] RVA [size] of CodeManagerTable Directory 
      0 [  0] RVA [size] of VTableFixups Directory 
      0 [  0] RVA [size] of ExportAddressTableJumps Directory 
      0 [  0] RVA [size] of ManagedNativeHeader Directory 

Zusammenfassung

2000 .reloc 
    2000 .rsrc 
    2000 .text 
+0

Sieht so aus, als ob es nur 'MajorRuntimeVersion' und' MinorRuntimeVersion' vom CLI-Header abhebt (ECMA-335 Partition II, Abschnitt 25.3.3). Leider scheint die Spezifikation keine Anleitung zu geben, wie sie gesetzt oder verwendet werden sollten, außer "aktuell" 2 und 0 respektvoll zu sein (6. Ausgabe vom Juni 2012 - die neueste Version, die ich gesehen habe). Ich vermute, dass es mehr damit zu tun hat, wie der Header interpretiert werden sollte als die .NET-Version. –

Antwort

0

Weil das, was als „Runtime-Version bezeichnet ist "Dieses Tool ist eigentlich keine Runtime-Version und hat damit wenig zu tun. Es ist eine falsche Bezeichnung. Sie können dumpbin nicht verwenden, um die aktuelle Laufzeitversion zu drucken. Stattdessen können Sie ildasm verwenden, die sich auf die Laufzeitversion als "Metadatenversion" bezieht. Sie finden die Metadatenversion im Manifest der Assembly. Für .NET 4.x ist die Laufzeitversion 4.0.30319.