Ermitteln ob Native Image schon erzeugt wurde,...

19/02/2009 - 16:24 von Kerem Gümrükcü | Report spam
Hallo,

was ist ein sicherer Weg (über Code) zu ermitteln, ob bereits
ein Native Image für eine Assembyl erzeugt wurde? Mit
dem NGEN (ngen.exe display) bekomme ich auf der Konsole)
die gewünschten Ausgaben, aber ist das auch über Code
möglich. Es gibt ettliche Verweise in der Registry vom Optimierungs
Dienst, auch enthàllt der Pfad im Ordner (für 32 bit Assemblies):

"%WINDIR%\assembly\NativeImages_v2.0.50727_32\<AssembylName>\
20373c24dc12c0d75daecbeee8497dba\<AssemblyName.ni.exe/dll"

gewisse Informationen in der Datei, die aussieht wie eine PE-Datei, aber
nicht ausführbar ist, also vom Loader des OS,...zwar hat das Native Image
.NET 2.0 Metadaten /Metadaten/Assembly/20000001:MajorVersion,MinorVersion,
RevisionNumber,BuildNumber,..aber das alles dann mit der Windows Debugging
Library
zu holen, bzw mit Reflection (weiss nicht ob das mit dem Image überhaupt
geht)
und auch noch "Strukturen" über die rohen Daten zu legen ist etwas zu
aufwendig.
Das "könnte" einfacher gehen,...vielleicht weiss ich es nur nicht

Aber kennt jemand einen sicheren Weg, oder sogar eine (Undokumentierte)
API um das zu ermitteln,...?

Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.pro-it-education.de/soft...iceremover
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."
 

Lesen sie die antworten

#1 Frank Dzaebel
19/02/2009 - 16:51 | Warnen spam
Hallo Kerem,

was ist ein sicherer Weg (über Code) zu ermitteln, ob bereits
ein Native Image für eine Assembyl erzeugt wurde?
Mit dem NGEN (ngen.exe display) bekomme ich auf der Konsole)
die gewünschten Ausgaben, aber ist das auch über Code
möglich.



Da kannst Du AFAIK die Fusion API dafür benutzen:

[CreateAssemblyEnum-Funktion]
http://msdn.microsoft.com/de-de/lib...30583.aspx

mit dwFlags auf: "ASM_CACHE_FLAGS.ASM_CACHE_ZAP"

[ASM_CACHE_FLAGS]
http://msdn.microsoft.com/de-de/lib...31621.aspx

[Die Fusion entmystifiziert - Teil 2 – Windows Live]
http://klaus-b0.spaces.live.com/Blog/cns!C37B3F712EE024B2!211.entry


ciao Frank
Dipl. Inf. Frank Dzaebel [MCP, MVP C#]
http://Dzaebel.NET

Ähnliche fragen