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.