Partager via


Service d'images natives

Le service d'images natives est un service Windows qui crée et gère des images natives. Le service d'images natives permet au développeur de différer l'installation et la mise à jour d'images natives aux périodes pendant lesquelles l'ordinateur est inactif.

Normalement, le service d'images natives est lancé par le programme d'installation d'une application ou d'une mise à jour. Pour les actions de priorité 3, le service s'exécute pendant l'inactivité de l'ordinateur. Le service enregistre son état et est capable de poursuivre après de multiples redémarrages si nécessaire. Plusieurs compilations d'images peuvent être mises en file d'attente.

Le service interagit également avec la commande Ngen.exe manuelle. Les commandes manuelles sont prioritaires sur l'activité d'arrière-plan.

Notes

Dans Windows Vista, le nom affiché pour le service d'images natives est « Microsoft.NET Framework NGEN v2.0.50727_X86 » ou « Microsoft.NET Framework NGEN v2.0.50727_X64 ». Dans toutes les versions antérieures de Microsoft Windows, le nom est « .NET Runtime Optimization Service v2.0.50727_X86 » ou « .NET Runtime Optimization Service v2.0.50727_X64 ».

Lancement d'opérations différées

Avant de commencer une installation ou une mise à niveau, il est recommandé de suspendre le service. Cela garantit que le service ne s'exécute pas pendant que le programme d'installation copie des fichiers ou place des assemblys dans le Global Assembly Cache. La ligne de commande Ngen.exe suivante suspend le service :

ngen queue pause

Lorsque toutes les opérations différées ont été placées en file d'attente, la commande suivante autorise le service à reprendre :

ngen queue continue

Pour différer la génération d'images natives lors de l'installation d'une nouvelle application ou lorsque vous mettez à jour un composant partagé, utilisez l'option /queue avec les actions install ou update. Les lignes de commande Ngen.exe suivantes installent une image native pour un composant partagé et effectuent une mise à jour de toutes les racines qui ont pu être affectées :

ngen install MyComponent /queue
ngen update /queue

L'action update régénère toutes les images natives qui ont été invalidées, pas uniquement celles qui utilisent MyComponent.

Si votre application se compose de nombreuses racines, vous pouvez contrôler la priorité des actions différées. Les commandes suivantes mettent en file d'attente l'installation de trois racines. Assembly1 est installé en premier, sans attendre d'inactivité. Assembly2 est également installé sans attendre d'inactivité, mais après que toutes les actions de priorité 1 ont été effectuées. Assembly3 est installé lorsque le service détecte que l'ordinateur est inactif.

ngen install Assembly1 /queue:1
ngen install Assembly2 /queue:2
ngen install Assembly3 /queue:3

Vous pouvez forcer des actions en file d'attente à se produire de façon synchrone en utilisant l'action executeQueuedItems. Si vous fournissez la priorité facultative, cette action affecte uniquement les actions en file d'attente de priorité égale ou inférieure. La priorité par défaut est 3, la commande Ngen.exe suivante traite donc immédiatement toutes les actions en file d'attente et ne retourne pas tant qu'elles ne sont pas terminées :

ngen executeQueuedItems

Les commandes synchrones sont exécutées par Ngen.exe et n'utilisent pas le service d'images natives. Vous pouvez exécuter des actions à l'aide de Ngen.exe pendant que l'exécution du service d'images natives.

Arrêt du service

Le service, après avoir été initialisé par l'exécution d'une commande Ngen.exe qui inclut l'option /queue, s'exécute en arrière-plan jusqu'à ce que toutes les actions soient terminées. Le service enregistre son état afin qu'il puisse poursuivre après de multiples redémarrages si nécessaire. Lorsque le service détecte qu'aucune action ne se trouve en file d'attente, il réinitialise son état afin qu'il ne redémarre pas la prochaine fois l'ordinateur est démarré, puis, il s'arrête.

Interaction du service avec les clients

Dans le .NET Framework version 2.0, la seule interaction avec le service d'images natives est via l'outil de ligne de commande Ngen.exe. Utilisez l'outil de ligne de commande dans les scripts d'installation pour mettre en file d'attente des actions pour le service d'images natives et interagir avec le service.

Voir aussi

Référence

Outil Native Image Generator Tool (Ngen.exe)
Invite de commandes du Kit de développement SDK