Como usar o Windows Installer com o gerenciador de reinicialização

Aplicativos que usam o Windows Installer versão 4.0 para instalação e manutenção no Windows Vista usam automaticamente o Gerenciador de Reinicialização para reduzir as reinicializações do sistema. O comportamento padrão no Windows Vista é desligar os aplicativos, em vez de desligar e reiniciar o sistema operacional sempre que possível. Nos casos em que uma reinicialização do sistema é inevitável, os instaladores podem usar a API do Gerenciador de Reinicialização para agendar reinicializações de forma a minimizar a interrupção do fluxo de trabalho do usuário.

Os desenvolvedores do Windows Installer podem executar as seguintes ações para preparar o pacote para trabalhar com o Gerenciador de Reinicialização.

  • Adicione a caixa de diálogo MsiRMFilesInUse ao pacote. Se a caixa de diálogo MsiRMFilesInUse estiver presente no pacote, o usuário do Windows Vista que executa uma instalação no nível de interface do usuário da interface do usuário completa receberá a opção de fechar e reiniciar automaticamente os aplicativos. Um pacote de instalação pode conter as informações da caixa de diálogo MsiRMFilesInUse e da caixa de diálogo FilesInUse. A caixa de diálogo MsiRMFilesInUse só será exibida se o pacote estiver instalado com pelo menos o Windows Installer 4.0 no Windows Vista e for ignorado de outra forma. Os pacotes existentes que não têm a caixa de diálogo MsiRMFilesInUse continuam funcionando com a caixa de diálogo FilesInUse. Uma transformação de personalização pode ser usada para adicionar uma caixa de diálogo MsiRMFilesInUse aos pacotes existentes.

    Normalmente, os usuários finais executam instalações no nível de interface do usuário da interface do usuário completa. Instalações no nível de interface do usuário básica ou reduzida dão ao usuário a opção de usar o Gerenciador de Reinicialização para reduzir as reinicializações do sistema, mesmo que a caixa de diálogo MsiRMFilesInUse não esteja presente. As instalações no nível de interface do usuário silenciosa sempre desligam os aplicativos e serviços e, no Windows Vista, sempre usam o Gerenciador de Reinicialização.

  • Registre os aplicativos para uma reinicialização usando a função RegisterApplicationRestart. O Gerenciador de Reinicialização só pode reiniciar os aplicativos que foram registrados para reinicialização. O Gerenciador de Reinicialização reinicia os aplicativos registrados após a instalação. Se a instalação exigir uma reinicialização do sistema, o Gerenciador de Reinicialização reiniciará o aplicativo registrado após a reinicialização do sistema.

  • Especifique INSTALLLOGMODE_RMFILESINUSE ao habilitar um manipulador de interface do usuário externa com as funções MsiSetExternalUI e MsiSetExternalUIRecord. O Windows Installer enviará uma mensagem de INSTALLMESSAGE_RMFILESINUSE para os manipuladores de interface do usuário externa que dão suporte ao Gerenciador de Reinicialização. Se nenhuma interface do usuário registrada ou interna manipular a mensagem INSTALLMESSAGE_RMFILESINUSE, o instalador enviará uma mensagem INSTALLMESSAGE_FILESINUSE para os manipuladores de interface do usuário que dão suporte à caixa de diálogo FilesInUse. Para obter mais informações, confira Como usar o gerenciador de reinicialização com uma interface do usuário externa.

  • Ações personalizadas podem adicionar os recursos pertencentes a uma sessão do Gerenciador de Reinicialização. A ação personalizada deve ser sequenciada antes da ação InstallValidate. As ações personalizadas podem usar a propriedade MsiRestartManagerSessionKey para obter a chave de sessão e devem chamar as funções RmJoinSession e RmEndSession da API do Gerenciador de Reinicialização. Ações personalizadas podem não remover os recursos pertencentes a uma sessão do Gerenciador de Reinicialização. As ações personalizadas não devem tentar desligar ou reiniciar aplicativos usando as funções RmShutdown, RmGetList e RmRestart.

  • Os autores de pacotes podem embasar uma condição na tabela LaunchCondition na propriedade MsiSystemRebootPending para impedir a instalação do pacote, quando uma reinicialização do sistema estiver pendente.

  • Os autores e administradores de pacotes podem controlar a interação do Windows Installer e do Restart Manager usando as propriedades MSIRESTARTMANAGERCONTROL, MSIDISABLERMRESTART, MSIRMSHUTDOWN e a política DisableAutomaticApplicationShutdown.

  • Os aplicativos e serviços devem seguir as diretrizes descritas na seção Com usar o Gerenciador de Reinicialização na documentação do Gerenciador de Reinicialização.