Servicio de imágenes nativas

El servicio de imágenes nativas es un servicio de Windows que genera y mantiene las imágenes nativas. El servicio de imágenes nativas permite que el desarrollador difiera la instalación y actualización de imágenes nativas a los momentos en que el equipo se encuentre inactivo.

Normalmente, el programa de instalación (instalador) de una aplicación o actualización es el encargado de iniciar el servicio imágenes nativas. Para las acciones de prioridad 3, el servicio se ejecuta durante el tiempo de inactividad en el equipo. El servicio guarda su estado y es capaz de reanudarse a lo largo de varios reinicios si es necesario. Se pueden poner en la cola varias compilaciones de imágenes.

El servicio también interactúa con el comando Ngen.exe manual. Los comandos manuales tienen prioridad sobre la actividad en segundo plano.

NotaNota

En Windows Vista, el nombre mostrado para el servicio de imágenes nativas es "Microsoft.NET Framework NGEN v2.0.50727_X86" o "Microsoft.NET Framework NGEN v2.0.50727_X64".En todas las versiones anteriores de Microsoft Windows, el nombre es "Servicio de optimización en tiempo de ejecución .NET v2.0.50727_X86" o "Servicio de optimización en tiempo de ejecución .NET v2.0.50727_X64".

Iniciar operaciones diferidas

Antes de iniciar una instalación o actualización, se recomienda detener el servicio. Esto garantiza que el servicio no se ejecute mientras el instalador copia archivos o coloca ensamblados en la caché global de ensamblados. La siguiente línea de comandos de Ngen.exe detiene el servicio:

ngen queue pause

Una vez que todas las operaciones diferidas se hayan colocado en la cola, el siguiente comando permitirá reanudar el servicio:

ngen queue continue

Para diferir la generación de imágenes nativas durante la instalación de una nueva aplicación o durante la actualización de un componente compartido, utilice la opción /queue con las acciones install o update. Las siguientes líneas de comando de Ngen.exe instalan una imagen nativa para un componente compartido y actualizan todas las raíces que puedan haberse visto afectadas:

ngen install MyComponent /queue
ngen update /queue

La acción update vuelve a crear todas las imágenes nativas invalidadas, no sólo aquéllas que utilizan MyComponent.

Si la aplicación está formada por varias raíces, puede controlar la prioridad de las acciones diferidas. Los comandos siguientes ponen en la cola la instalación de tres raíces. Assembly1 se instala primero, sin esperar al tiempo de inactividad. Assembly2 también se instala sin esperar al tiempo de inactividad, pero después de que se hayan completado todas las acciones de mayor prioridad. Assembly3 se instala cuando el servicio detecta que el equipo está inactivo.

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

Puede forzar que las acciones en cola se produzcan sincrónicamente por medio de la acción executeQueuedItems. Si especifica una prioridad opcional, esta acción sólo afectará a las acciones en cola cuya prioridad sea igual o menor a la especificada. La prioridad predeterminada es 3, por lo que el siguiente comando de Ngen.exe procesa todas las acciones en cola inmediatamente y no vuelve hasta que éstas finalizan:

ngen executeQueuedItems

Ngen.exe se encarga de ejecutar los comandos sincrónicos, que no utilizan el servicio de imágenes nativas. Es posible ejecutar acciones mediante Ngen.exe mientras el servicio de imágenes nativas se está ejecutando.

Cierre del servicio

Una vez iniciado el servicio mediante la ejecución de un comando de Ngen.exe que incluya la opción /queue, el servicio se ejecutará en segundo plano hasta que se completen todas las acciones. El servicio guarda su estado para poder reanudarse a lo largo de varios reinicios si es necesario. Cuando el servicio detecta que no hay más acciones en cola, restablece su estado para no volver a iniciarse la próxima vez que el equipo arranque y, después, se cierra.

Interacción del servicio con los clientes

En la versión 2.0 de .NET Framework, la única interacción con el servicio de imágenes nativas se produce a través de la herramienta de línea de comandos Ngen.exe. Use esta herramienta en los scripts de instalación para poner en la cola las acciones correspondientes al servicio de imágenes nativas y para interactuar con el servicio.

Vea también

Referencia

Ngen.exe (Generador de imágenes nativas)

Símbolos del sistema del SDK de Windows y Visual Studio