Ngen.exe (Native Image Generator)

Ngen.exe (Native Image Generator)

Native Image Generator (Ngen.exe) ist ein leistungsstarkes Tool zur Optimierung verwalteter Anwendungen. Es ermöglicht die Erstellung systemeigener Images, die als Dateien mit kompiliertem prozessorspezifischem Code auf dem lokalen Computer installiert werden. Durch die Nutzung dieser systemeigenen Images aus dem Cache können Laufzeiten den Just-in-Time-Compiler umgehen und die ursprüngliche Assembly nicht erneut kompilieren.

Änderungen in .NET Framework 4

  • “Ngen.exe” kann nun Assemblys mit vollständiger Vertrauenswürdigkeit kompilieren, ohne die Codezugriffssicherheitsrichtlinie (CAS) zu überprüfen.
  • Systemeigene Images können nicht mehr für Anwendungen geladen werden, die mit partieller Vertrauenswürdigkeit ausgeführt werden.

Änderungen in .NET Framework Version 2.0

  • Bei der Installation einer Assembly werden auch ihre Abhängigkeiten installiert, und die Syntax von “Ngen.exe” wurde vereinfacht.
  • Systemeigene Images können jetzt für mehrere Anwendungsdomänen verwendet werden.
  • Die neue Aktion “update” erstellt ungültig gewordene Images neu.
  • Aktionen können verzögert und in Leerlaufzeiten des Computers ausgeführt werden.
  • Einige Ursachen für die Ungültigkeit von Images wurden eliminiert.

Verwendung von Ngen.exe

  • Ngen.exe wird automatisch mit Visual Studio installiert.
  • Die Developer-Eingabeaufforderung von Visual Studio oder Visual Studio Developer PowerShell kann verwendet werden, um das Tool auszuführen.

Geben Sie an der Eingabeaufforderung Folgendes ein:

ngen action [optionen] ngen /? | /help

Aktionen

Die folgende Tabelle zeigt die Syntax für jede einzelne Aktion. Beschreibungen der einzelnen Teile finden Sie in den Tabellen für Argumente, Prioritätsebenen, Szenarien und Konfigurationen. Optionen werden in der Tabelle Optionen beschrieben.

  • install [assemblyName | assemblyPath] [scenarios] [config] [/queue[:{1|2|3}]] Generiert systemeigene Images für eine Assembly und ihre Abhängigkeiten und installiert sie im Cache für systemeigene Images. Die Aktion kann optional in die Warteschlange des Diensts für systemeigene Images gestellt werden. Die Standardpriorität ist 3.

  • uninstall [assemblyName | assemblyPath] [scenarios] [config] Löscht die systemeigenen Images einer Assembly und ihrer Abhängigkeiten aus dem Cache für systemeigene Images. Bei der Deinstallation wird die gleiche Befehlszeilenargumente wie bei der Installation verwendet. Hinweis: Ab .NET Framework 4 wird die Aktion uninstall * nicht mehr unterstützt.

  • update [/queue] Aktualisiert systemeigene Images, die ungültig geworden sind.

  • display [assemblyName | assemblyPath] Zeigt den Status der systemeigenen Images einer Assembly und ihrer Abhängigkeiten an. Ohne Argumente werden alle systemeigenen Images im Cache für systemeigene Images angezeigt.

  • executeQueuedItems [1|2|3] Führt die aktuell in der Warteschlange befindlichen Kompilierungsaufträge aus. Kann optional eine Priorität angeben.

  • queue {pause | continue | status}
    Hält den Dienst für systemeigene Images an, setzt den angehaltenen Dienst fort oder fragt den Status des Dienstes ab.

LESEN  Chop Suey – China-Pfanne: Ein Fix ohne Fix Rezept

Argumente

  • assemblyName
    Der vollständige Anzeigename der Assembly.

  • assemblyPath
    Der explizite Pfad der Assembly.

Prioritätsebenen

  • Priorität 1: Systemeigene Images werden sofort generiert und installiert, ohne auf Leerlaufzeit zu warten.
  • Priorität 2: Systemeigene Images werden ohne Warten auf Leerlaufzeit generiert und installiert, nachdem alle Aktionen mit Priorität 1 (und ihre Abhängigkeiten) abgeschlossen wurden.
  • Priorität 3: Systemeigene Images werden installiert, wenn der Dienst für systemeigene Images feststellt, dass der Computer im Leerlauf ist.

Szenarien

  • Debug: Generiert systemeigene Images, die unter einem Debugger verwendet werden können.
  • Profile: Generiert systemeigene Images, die unter einem Profiler verwendet werden können.
  • NoDependencies: Generiert nur die minimal erforderliche Anzahl von systemeigenen Images für die angegebenen Szenarien.

Konfigurationen

  • ExeConfig: Verwendet die Konfiguration der angegebenen ausführbaren Assembly.
  • AppBase: Verwendet das angegebene Verzeichnis als Anwendungsbasis beim Suchen nach Abhängigkeiten.

Optionen

  • /nologo: Unterdrückt die Anzeige des Startbanners von Microsoft.
  • /silent: Unterdrückt die Anzeige von Erfolgsmeldungen.
  • /verbose: Zeigt ausführliche Informationen zum Debuggen an.
  • /help, /?: Zeigt die Befehlssyntax und Optionen für das aktuelle Release an.

Hinweise

  • Ngen.exe erfordert Administratorrechte zum Ausführen.
  • Systemeigene Images können nicht in Anwendungen geladen werden, die mit partieller Vertrauenswürdigkeit ausgeführt werden.
  • Ngen.exe erfasst Abhängigkeiten und erneuert Images, wenn die ursprüngliche Assembly oder ihre Abhängigkeiten gewartet werden.
  • Die mit Ngen.exe generierten systemeigenen Images können für andere Anwendungsdomänen freigegeben werden.

Für weitere Informationen lesen Sie bitte die Microsoft-Dokumentation zu Ngen.exe und dem Dienst für systemeigene Abbilder.