Dienst für systemeigene Abbilder
Der Dienst für systemeigene Abbilder ist ein Windows-Dienst, der systemeigene Abbilder generiert und verwaltet. Der Dienst für systemeigene Abbilder ermöglicht es dem Entwickler, die Installation und Update systemeigener Abbilder auf einen Zeitraum zu verschieben, in dem sich der Computer im Leerlauf befindet.
Normalerweise wird der Dienst für systemeigene Abbilder vom Installationsprogramm (Installer) für eine Anwendung oder ein Update initiiert. Bei Aktionen mit der Priorität 3 wird der Dienst während Leerlaufzeiten des Computers ausgeführt. Der Zustand des Dienstes wird gespeichert, sodass er auch nach mehreren Neustarts noch fortgesetzt werden kann. Es können mehrere Abbildkompilierungen in der Warteschlange gespeichert werden.
Der Dienst interagiert zudem mit dem manuellen Befehl Ngen.exe. Manuell eingegebene Befehle haben Vorrang gegenüber Hintergrundaktivitäten.
Hinweis |
---|
In Windows Vista ist der angezeigte Name des Diensts für systemeigene Abbilder "Microsoft.NET Framework NGEN v2.0.50727_X86" oder "Microsoft.NET Framework NGEN v2.0.50727_X64".Bei allen früheren Versionen von Microsoft Windows lautet der Name ".NET Runtime Optimization Service v2.0.50727_X86" oder ".NET Runtime Optimization Service v2.0.50727_X64". |
Starten verzögerter Vorgänge
Es wird empfohlen, den Dienst vor Beginn einer Installation oder eines Upgrades anzuhalten. Auf diese Weise wird verhindert, dass der Dienst im Hintergrund ausgeführt wird, während Dateien vom Installationsprogramm kopiert oder Assemblys in den globalen Assemblycache eingefügt werden. Durch die folgende Befehlszeile von Ngen.exe wird der Dienst angehalten:
ngen queue pause
Nachdem alle verzögerten Vorgänge in die Warteschlange eingereiht wurden, kann der Dienst mit folgendem Befehl wieder aufgenommen werden:
ngen queue continue
Um das Generieren systemeigener Abbilder bei der Installation einer neuen Anwendung oder beim Update einer freigegebenen Komponente zu verzögern, verwenden Sie die Option /queue mit der Aktion install oder der Aktion update. Mithilfe der folgenden Befehlszeilen in Ngen.exe wird ein systemeigenes Abbild für eine freigegebene Komponente installiert und eine Aktualisierung aller möglicherweise betroffenen Stammelemente ausgeführt:
ngen install MyComponent /queue
ngen update /queue
Durch die Aktion update werden alle ungültig gewordenen systemeigenen Abbilder neu generiert, und nicht nur diejenigen, die MyComponent verwenden.
Wenn die Anwendung zahlreiche Stammelemente umfasst, können Sie die Priorität der verzögerten Aktionen steuern. Durch die folgenden Befehle wird die Installation von drei Stammelementen in eine Warteschlange eingereiht. Assembly1 wird zuerst installiert, ohne dass eine Leerlaufzeit abgewartet wird. Assembly2 wird ebenfalls ohne Abwarten der Leerlaufzeit installiert, aber erst nachdem alle Aktionen mit Priorität 1 abgeschlossen sind. Assembly3 wird installiert, nachdem der Dienst festgestellt hat, dass sich der Computer im Leerlauf befindet.
ngen install Assembly1 /queue:1
ngen install Assembly2 /queue:2
ngen install Assembly3 /queue:3
Mithilfe der Aktion executeQueuedItems können Sie erzwingen, dass Aktionen in der Warteschlange gleichzeitig ausgeführt werden. Wenn Sie die optionale Priorität angeben, wirkt sich diese Aktion nur auf die Aktionen in der Warteschlange aus, die über dieselbe oder eine niedrigere Priorität verfügen. Da der Standardwert Priorität 3 ist, werden durch den folgenden Befehl von Ngen.exe alle in die Warteschlange eingereihten Aktionen unverzüglich verarbeitet, und der Befehl gibt erst nach Abschluss sämtlicher Aktionen einen Wert zurück:
ngen executeQueuedItems
Synchrone Befehle werden von Ngen.exe ausgeführt und verwenden den Dienst für systemeigene Abbilder nicht. Sie können Aktionen mit Ngen.exe ausführen, während der Dienst für systemeigene Abbilder ausgeführt wird.
Beenden des Dienstes
Nachdem der Dienst durch Ausführen eines Ngen.exe-Befehls gestartet wurde, der die Option /queue umfasst, wird er bis zum Abschluss sämtlicher Aktionen im Hintergrund ausgeführt. Da der Zustand des Dienstes gespeichert wird, kann er ggf. auch nach mehreren Neustarts fortgesetzt werden. Wenn der Dienst feststellt, dass keine weiteren Aktionen in der Warteschlange enthalten sind, wird der Dienststatus zurückgesetzt, sodass der Dienst beim nächsten Computerstart nicht neu gestartet wird. Infolgedessen wird der Dienst automatisch beendet.
Interaktion des Diensts mit Clients
In .NET Framework, Version 2.0, erfolgt die Interaktion mit dem Dienst für systemeigene Images ausschließlich über das Befehlszeilentool Ngen.exe. Verwenden Sie das Befehlszeilentool in Installationsskripts, um Aktionen zur Verarbeitung durch den Dienst für systemeigene Images in eine Warteschlange einzureihen und um mit dem Dienst zu interagieren.