Compartilhar via


Serviço de imagem nativa

O serviço de imagem nativo é um serviço do Windows que gera e mantém imagens nativas. O serviço de imagem nativa permite ao desenvolvedor adiar a instalação e atualização de nativas imagens para períodos quando o computador estiver ocioso.

Normalmente, o serviço de imagem nativa é iniciado pelo programa de instalação (instalador) para um aplicativo ou a atualização. Para ações de prioridade 3, o serviço é executado durante o tempo ocioso do computador. O serviço salva seu estado e é capaz de continuar por meio de várias reinicializações, se necessário. Várias compilações de imagem podem ser enfileiradas.

O serviço também interage com o comando manual do NGen. exe. Comandos manuais prevalecem sobre a atividade de plano de fundo.

Observação

No Windows Vista, o nome exibido para o serviço de imagem nativa é "v2.0.50727_x86 Microsoft.NET Framework ngen" ou "NGEN do Microsoft.NET Framework v2.0.50727_X64".Em todas as versões anteriores do Microsoft Windows, o nome é ".NET v 2.0.50727 _X86 " ou ".NET v 2.0.50727 _x64 ".

Iniciando operações adiadas

Antes de iniciar uma instalação ou atualização, pausando o serviço é recomendado. Isso garante que o serviço não é executado enquanto o instalador está copiando os arquivos ou colocar os assemblies no cache global de assemblies. A seguinte linha de comando do NGen. exe pausa o serviço:

ngen queue pause

Quando todas as operações adiadas foram enfileiradas, o seguinte comando permite que o serviço continuar:

ngen queue continue

Para adiar a geração de imagem nativa ao instalar um novo aplicativo ou ao atualizar um componente compartilhado, use o /queue a opção com o install ou update Ações. As seguintes linhas de comando do NGen. exe instala uma imagem nativa para um componente compartilhado e executar uma atualização de todas as raízes foram afetados:

ngen install MyComponent /queue
ngen update /queue

O update ação gera novamente todas as imagens nativas que foram invalidadas, não apenas aqueles que usam MyComponent.

Se seu aplicativo consiste em várias raízes, você pode controlar a prioridade das ações adiadas. Os seguintes comandos na fila a instalação de três raízes. Assembly1é instalado pela primeira vez, sem aguardar o tempo ocioso. Assembly2também é instalado sem espera para o tempo ocioso, mas depois de concluíram todas as ações de prioridade 1. Assembly3é instalado quando o serviço detecta que o computador estiver ocioso.

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

Você pode forçar ações enfileiradas ocorra de maneira síncrona usando o executeQueuedItems ação. Se você fornecer a prioridade opcional, essa ação afeta somente as ações na fila com prioridade igual ou menor. A prioridade padrão é 3, portanto, o seguinte comando NGen. exe processa todas as ações em fila imediatamente e não retorna até que sejam concluídos:

ngen executeQueuedItems

Comandos síncronos são executados pelo NGen. exe e não usam o serviço de imagem nativa. Você pode executar ações usando o NGen. exe durante a execução do serviço de imagem nativa.

Desligamento de serviço

Depois de serem iniciadas pela execução de um comando NGen. exe que inclui o /queue opção, o serviço é executado em segundo plano até que todas as ações foram concluídas. O serviço salva seu estado, para que ele possa continuar por meio de várias reinicializações, se necessário. Quando o serviço detecta que há não mais ações na fila, ela redefine seu status para que ele não será reiniciado na próxima vez em que o computador é inicializado e, em seguida, ele se desliga.

Interação de serviço com clientes

No.NET Framework versão 2.0, a única interação com o serviço de imagem nativa é por meio da ferramenta de linha de comando NGen. exe. Use a ferramenta de linha de comando em scripts de instalação para ações de fila para o serviço de imagem nativa e interagir com o serviço.

Consulte também

Referência

NGen (Native Image Generator)

Prompt de comando Visual Studio