Reinicializações do sistema

O Windows Installer pode determinar quando uma reinicialização do sistema é necessária e solicitar automaticamente que o usuário reinicialize no final da instalação. Por exemplo, o instalador solicitará automaticamente uma reinicialização se precisar substituir os arquivos que estiverem em uso durante a instalação.

Aplicativos que usam o Windows Installer versão 4.0 ou posterior para instalação e manutenção usam automaticamente o Gerenciador de Reinicialização para reduzir as reinicializações do sistema. O Windows Installer versão 4.0 ou posterior tem propriedades e políticas que permitem que o autor do pacote e os administradores controlem a interação do Windows Installer com o Gerenciador de Reinicialização. Para obter mais informações, confira Usando o Windows Installer com o Restart Manager.

Os autores do pacote de instalação podem agendar e suprimir reinicializações usando ações padrão nas tabelas de sequência e definindo propriedades. As ações e as propriedades a seguir são usadas para lidar com reinicializações do sistema.

Ação, caixa de diálogo ou propriedade Breve descrição
Ação ForceReboot Solicita ao usuário uma reinicialização durante a instalação.
Ação ScheduleReboot Solicita ao usuário uma reinicialização no final da instalação.
Propriedade REBOOT Força ou suprime determinadas solicitações automáticas para uma reinicialização do sistema.
Propriedade REBOOTPROMPT Suprime a exibição de prompts de reinicializações para o usuário. Todas as reinicializações necessárias ocorrem automaticamente.
Propriedade AFTERREBOOT Normalmente usado em uma condição imposta à Ação ForceReboot.
Ação InstallValidate Exibe a caixa de diálogo FilesInUse, se necessário, dando aos usuários a oportunidade de desligar processos e evitar algumas reinicializações do sistema.
Caixa de diálogo FilesInUse Dá aos usuários a oportunidade de desligar processos para evitar algumas reinicializações do sistema.
Caixa de diálogo MsiRMFilesInUse Dá aos usuários a opção de usar o Gerenciador de Reinicialização para fechar e reiniciar aplicativos. Disponível a partir do Windows Installer versão 4.0.
Propriedade ReplacedInUseFiles Defina se o instalador for instalado em um arquivo em uso. Essa propriedade é usada por ações personalizadas para detectar se uma reinicialização é necessária.
MSIRESTARTMANAGERCONTROL Propriedade para desabilitar a interação do Windows Installer com o Gerenciador de Reinicialização. Disponível a partir do Windows Installer versão 4.0.
MSIDISABLERMRESTART Especifica como o Gerenciador de Reinicialização fecha e reinicia os aplicativos. Disponível a partir do Windows Installer versão 4.0.
MSIRMSHUTDOWN Especifica como o Gerenciador de Reinicialização fecha e reinicia os aplicativos. Disponível a partir do Windows Installer versão 4.0.
MsiSystemRebootPending O Installer define essa propriedade se uma reinicialização do sistema operacional estiver pendente. Disponível a partir do Windows Installer versão 4.0.
DisableAutomaticApplicationShutdown Política para desabilitar a interação do Windows Installer com o Gerenciador de Reinicialização. Disponível a partir do Windows Installer versão 4.0.

 

ERROR_INSTALL_SUSPEND significa que a instalação não foi concluída ou revertida. A instalação deve ser retomada antes de ser concluída. O sistema pode precisar ser reinicializado antes que a instalação possa ser retomada.

O Windows Installer retorna o código de erro ERROR_INSTALL_SUSPEND quando a ação ForceReboot é executada. Ele retornará ERROR_SUCCESS_REBOOT_REQUIRED se uma reinicialização for necessária antes de executar o aplicativo e retornará ERROR_SUCCESS_REBOOT_INITIATED se o instalador realmente tiver iniciado uma reinicialização. Observe que, como as reinicializações são assíncronas, a reinicialização pode realmente ocorrer antes que o código de erro seja retornado. Para obter mais informações, veja os Códigos de Erro.

Ações personalizadas podem forçar a reinicialização de um prompt no final de uma instalação chamando MsiSetMode. As ações personalizadas também podem verificar se há um prompt de reinicialização pendente chamando MsiGetMode.

Caixa de diálogo FilesInUse

O instalador pode determinar quando uma reinicialização do sistema é necessária e solicitar ao usuário uma solicitação de reinicialização. Normalmente, uma reinicialização do sistema é necessária porque o instalador está tentando instalar um arquivo que está sendo usado no momento. Se a ação InstallValidate detectar a instalação de um arquivo em uso, ela exibirá a Caixa de diálogo FilesInUse.

Se você espera que o instalador exiba um FilesInUseDialog, mas isso não acontecer, pode ser devido a um dos seguintes motivos:

  • Os arquivos em uso não são executáveis.
  • O instalador não está realmente tentando instalar esses arquivos.
  • O processo que contém esses arquivos é o processo que invoca a instalação.
  • O processo que contém esses arquivos é aquele que não tem uma janela com um título associado a ele.

Para obter mais informações, confira Registro em log de solicitações de reinicialização.